(一)增:
創(chuàng)新互聯(lián)公司是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),虛擬空間、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,成都移動(dòng)服務(wù)器托管,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國大陸、港澳臺以及歐美等多個(gè)國家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。
db.collname.insert({name:"user1",age:"20"}) 添加一條常規(guī)數(shù)據(jù),
添加的數(shù)字是以json格式的鍵值對,后面的值需要添加雙引號或引號
db.collname.insert({time:new Date()}) MongoDB支持js,可以在query中添加js語句
db.collname.insert({name:["user1","user2","user3"]}); 添加一條有數(shù)組的數(shù)據(jù)
db.collname.insert({name:{first:"user1",middle :"user2",last:"user3"}}) 添加一條有內(nèi)嵌 文檔的數(shù)據(jù),(mongodb中一行數(shù)據(jù)也稱為文檔(document))
自定義文檔插入:
> doc={
... name:"user",
... age:"20",
... sexy:"man"
... }
{ "name" : "user", "age" : "20", "sexy" : "man" }
> db.c1.insert(doc);
(二)查
查看collection(c1)所有的數(shù)據(jù)
db.c1.find()
查看用戶名為smith的數(shù)據(jù)
db.c1.find(name:"smith")
查看除了age字段以外的所有數(shù)據(jù)
db.c1.find({},{age:0})
查看用戶名為smith,不包括age字段的其他字段
db.c1.find({name:"smith"},{age:0})
只查看用戶名為smith的age字段
db.c1.find({name:"smith"},{age:1})
查看年齡大于20的數(shù)據(jù)
db.c1.find({age:{ $gt:20 }})
查看年齡小于20的數(shù)據(jù)
db.c1.find({age:{ $lt:20 }})
查看年齡大于等于20的數(shù)據(jù)
db.c1.find({age:{ $gte:20 }})
查看年齡小于等于20的數(shù)據(jù)
db.c1.find({age:{ $lte:20 }})
查看年齡不等于20的數(shù)據(jù)
db.c1.find({age:{ $ne:20 }})
查看同時(shí)有singging和football愛好的數(shù)據(jù)
db.c1.find({hobby:{$all:[”singging",“football”]}});($all 必須都包括,$in只需要包 括其 中一個(gè))
查看有singging或是football愛好的數(shù)據(jù)
db.c1.find({hobby:{$in:[”singging",“football”]}})
查看沒有singging或是football愛好的數(shù)據(jù)
db.c1.find({hobby:{$nin:[”singging",“football”]}})
查看存在某個(gè)字段的數(shù)據(jù):并只輸出五條數(shù)據(jù)
db.c1.find({name:{$exists:true }}).limit(5);
取模操作,查看年齡尾數(shù)為一的數(shù)據(jù)
db.c1.find({age:{$mod:[10,1]}});
查看符合至少一個(gè)要求的數(shù)據(jù) $or
db.c1.find({$or:[{age:20},{sexy:"man"});
查看一個(gè)要求都不符合的數(shù)據(jù) $nor
db.c1.find({$nor:[{age:20},{sexy:"man"});
查看數(shù)組長度等于3的數(shù)據(jù)(設(shè)a為數(shù)組)
db.c1.find({a:{$size:3}})
檢索name屬性是以u開頭,4結(jié)尾的所有用戶(可使用正則表達(dá)式)
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);
查詢記錄數(shù):
db.c1.find().count();
查詢某document沒有數(shù)值,或不存在:
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)下的所有數(shù)據(jù)
db.c1.remove()
刪除id為10的數(shù)據(jù)
db.c1.remove({_id:10})
建議:刪除操作的時(shí)候,盡量用_id作為條件
某些情況下,當(dāng)你在對一個(gè)記錄執(zhí)行remove操作的時(shí)候,可能會有update操作在這個(gè)記錄上,這樣就可能刪除不掉這個(gè)記錄,如果你覺得這不盡人意,那么你可以在remove操作的時(shí)候加上$atomic: db.videos.remove( { rating : { $lt : 3.0 }, $atomic : true } )
(四)改
語法 db.collection.update( criteria, objNew, upsert, multi )
Criteria:用于設(shè)置查詢條件的對象
Objnew:用于設(shè)置更新內(nèi)容的對象
Upsert:如果記錄已經(jīng)存在,更新它,否則新增一個(gè)記錄
Multi:如果有多個(gè)符合條件的記錄,全部更新
注意:默認(rèn)情況下,只會更新第一個(gè)符合條件的記錄
如果存在更新它,如果不存在,新增記錄 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是數(shù)組,或是不存在,否則會報(bào)錯(cuò))
db.user.update({_id:0},{$push:{hobby:'football'}});
{ $pushAll : { field : value_array } } 用法跟上面一樣
往id為0的hobby字段添加一個(gè)數(shù)據(jù)(前提hobby是數(shù)組,或是不存在,否則會報(bào)錯(cuò))
db.user.update({_id:0},{$addToSet:{hobby:'football'}});
刪除id為0的hobby字段的最后一個(gè)數(shù)據(jù)(前提hobby是數(shù)組,或是不存在,否則會報(bào)錯(cuò)
db.user.update({_id:0},{$pop:{hobby:'football'}});
刪除id為0的hobby字段中符合條件的數(shù)據(jù)(前提hobby是數(shù)組,或是不存在,否則會報(bào)錯(cuò)
db.user.update({_id:0},{$pull:{aihao:'bike'}});
把id為0的數(shù)據(jù)中name字段名改為username
db.user.update({_id:0},{$rename:{'name':'username'}});