(一)增:
db.collname.insert({name:"user1",age:"20"}) 添加一條常規數據,
添加的數字是以json格式的鍵值對,後面的值需要添加雙引號或引號
db.collname.insert({time:new Date()}) mongodb支持js,可以在query中添加js語句
db.collname.insert({name:["user1","user2","user3"]}); 添加一條有數組的數據
db.collname.insert({name:{first:"user1",middle :"user2",last:"user3"}}) 添加一條有內嵌 文檔的數據,(mongodb中一行數據也稱爲文檔(document))
自定義文檔插入:
> doc={
... name:"user",
... age:"20",
... sexy:"man"
... }
{ "name" : "user", "age" : "20", "sexy" : "man" }
> db.c1.insert(doc);
(二)查
查看collection(c1)所有的數據
db.c1.find()
查看用戶名爲smith的數據
db.c1.find(name:"smith")
查看除了age字段以外的所有數據
db.c1.find({},{age:0})
查看用戶名爲smith,不包括age字段的其他字段
db.c1.find({name:"smith"},{age:0})
只查看用戶名爲smith的age字段
db.c1.find({name:"smith"},{age:1})
查看年齡大於20的數據
db.c1.find({age:{ $gt:20 }})
查看年齡小於20的數據
db.c1.find({age:{ $lt:20 }})
查看年齡大於等於20的數據
db.c1.find({age:{ $gte:20 }})
查看年齡小於等於20的數據
db.c1.find({age:{ $lte:20 }})
查看年齡不等於20的數據
db.c1.find({age:{ $ne:20 }})
查看同時有singging和football愛好的數據
db.c1.find({hobby:{$all:[”singging",“football”]}});($all 必須都包括,$in只需要包 括其 中一個)
查看有singging或是football愛好的數據
db.c1.find({hobby:{$in:[”singging",“football”]}})
查看沒有singging或是football愛好的數據
db.c1.find({hobby:{$nin:[”singging",“football”]}})
查看存在某個字段的數據:並只輸出五條數據
db.c1.find({name:{$exists:true }}).limit(5);
取模操作,查看年齡尾數爲一的數據
db.c1.find({age:{$mod:[10,1]}});
查看符合至少一個要求的數據 $or
db.c1.find({$or:[{age:20},{sexy:"man"});
查看一個要求都不符合的數據 $nor
db.c1.find({$nor:[{age:20},{sexy:"man"});
查看數組長度等於3的數據(設a爲數組)
db.c1.find({a:{$size:3}})
檢索name屬性是以u開頭,4結尾的所有用戶(可使用正則表達式)
db.c1.find({name:/u.*4$/i})
排序//1表示升序,-1表示降序
db.c1.find().sort({_id: 1})
查下唯一值
db.c1.distinct(“age")
分頁查詢:
db.c1.find().skip(20).limit(8);
或是:db.c1.find({},{},8,20);
查詢記錄數:
db.c1.find().count();
查詢某document沒有數值,或不存在:
db.c1.find(name:null)
查詢中$slice的用法
db.posts.find({}, {comments:{$slice: 5}}) // 前5條評論
db.posts.find({}, {comments:{$slice: -5}}) //後5條評論
db.posts.find({}, {comments:{$slice: [20, 10]}}) // skip 20, limit 10
db.posts.find({}, {comments:{$slice: [-20, 10]}}) // 20 from end, limit 10
(三)刪
刪除c1(collection)下的所有數據
db.c1.remove()
刪除id爲10的數據
db.c1.remove({_id:10})
建議:刪除操作的時候,儘量用_id作爲條件
某些情況下,當你在對一個記錄執行remove操作的時候,可能會有update操作在這個記錄上,這樣就可能刪除不掉這個記錄,如果你覺得這不盡人意,那麼你可以在remove操作的時候加上$atomic: db.videos.remove( { rating : { $lt : 3.0 }, $atomic : true } )
(四)改
語法 db.collection.update( criteria, objNew, upsert, multi )
Criteria:用於設置查詢條件的對象
Objnew:用於設置更新內容的對象
Upsert:如果記錄已經存在,更新它,否則新增一個記錄
Multi:如果有多個符合條件的記錄,全部更新
注意:默認情況下,只會更新第一個符合條件的記錄
如果存在更新它,如果不存在,新增記錄 db.mycollection.save(x);
把id爲0的age改成20
db.user.update({_id:0},{$set:{age:20}});
把id爲0的age加上20
db.user.update({_id:0},{$inc:{age:20}});
把id爲0的age減去20
db.user.update({_id:0},{$inc:{age:-20}});
把id爲0的sex字段刪除
db.user.update({_id:0},{$unset:{sex:1}});
修改id爲0的hobby字段(前提hobby是數組,或是不存在,否則會報錯)
db.user.update({_id:0},{$push:{hobby:'football'}});
{ $pushAll : { field : value_array } } 用法跟上面一樣
往id爲0的hobby字段添加一個數據(前提hobby是數組,或是不存在,否則會報錯)
db.user.update({_id:0},{$addToSet:{hobby:'football'}});
刪除id爲0的hobby字段的最後一個數據(前提hobby是數組,或是不存在,否則會報錯
db.user.update({_id:0},{$pop:{hobby:'football'}});
刪除id爲0的hobby字段中符合條件的數據(前提hobby是數組,或是不存在,否則會報錯
db.user.update({_id:0},{$pull:{aihao:'bike'}});
把id爲0的數據中name字段名改爲username
db.user.update({_id:0},{$rename:{'name':'username'}});