1. 程式人生 > >Ubuntu 下mongodb的shell常用命令

Ubuntu 下mongodb的shell常用命令

輸入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’