Ubuntu 下mongodb的shell常用命令
阿新 • • 發佈:2018-12-24
輸入mongo
命令,進入shell互動介面
mongo
show dbs # 顯示資料庫列表
show collections #顯示所有的集合
show users #顯示所有的使用者名稱
use 資料庫的名稱 #切換資料庫
建立資料庫
mongodb中沒有建立資料庫的命令。如果你想建立一個“School”的資料庫,先執行use School
命令,之後做一些操作(如:建立聚集集合db.createCollection('teacher')
,這樣就可以建立一個名叫“School”的資料庫。
執行完畢後,再 show dbs
此時School 資料庫就建立成功了。
插入資料
兩種方式: insert 和 save
db.student.insert({_id:10001,name:'tangxingkai',age:25})
db.student.save({name:'sunxiaohui',age:23})
db.student.find()
原來並沒有student這個集合,插入資料後,自動建立student的集合。
查詢資料
db.youCollection.find(criteria, filterDisplay)
db.student.find() #查詢所有記錄。相當於:select * from student
db.student.find({sname: 'lisi' }) #查詢sname='lisi'的記錄。相當於: select * from student where sname='lisi'
db.student.find({},{sname:1, sage:1}) #查詢指定列sname、sage資料。相當於:select sname,sage from student。sname:1表示返回sname列,預設_id欄位也是返回的,可以新增_id:0(意為不返回_id)寫成{sname: 1, sage: 1,_id:0},就不會返回預設的_id欄位了
db.student.find({sname: 'zhangsan', sage: 22}) #and 與條件查詢。相當於:select * from student where sname = 'zhangsan' and sage = 22
db.student.find({$or: [{sage: 22}, {sage: 25}]}) #or 條件查詢。相當於:select * from student where sage = 22 or sage = 25
修改資料
db.youCollection.update(criteria, objNew, upsert, multi )
criteria: update的查詢條件,類似sql update查詢內where後面的
objNew : update的物件和一些更新的操作符(如$set)等,也可以理解為sql update查詢內set後面的。
upsert : 如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。
multi: mongodb預設是false,只更新找到的第一條記錄,如果這個引數為true,就把按條件查出來多條記錄全部更新。預設false,只修改匹配到的第一條資料。
其中criteria和objNew是必選引數,upsert和multi可選引數
db.student.update({sname: 'lisi'}, {$set: {sage: 30}}, false, true) #相當於:update student set sage =30 where sname = 'lisi';
刪除資料
db.student.remove({sname: ‘chenliu’}) #相當於:delete from student where sname=’chenliu’