TODO:MongoDB的查詢更新刪除總結
- 常用查詢,條件操作符查詢,< 、<=、>、>=、!= 對應 MongoDB的查詢操作符是$lt、$lte、$gt、$gte、$ne
例:
db.getCollection(‘image_detail’).find({“dig” : {$gte:0}})//查詢大於等於0的數據
- $all,$in的區別{“dig” : {$all : [0,1]}查詢出來的結果dig必須有0和1
{“dig” : {$in : [0,1]}查詢出來的結果dig可以有0和1,或0,或1
- 有in就有not in,但是沒有not allnot in的操作符是$nin,{“dig” : {$nin : [0,1]},查詢出來的dig值不包含0,1
- $nin還有個替換的方式$in 取反 {$not : {$in : [0,1]}},巧妙的使用$not,可以解決很多使用場景db.getCollection(‘image_detail’).find({“dig” :{$not : {$in:[0,1]}}}
db.getCollection(‘image_detail’).find({“dig” :{$not : {$all:[0,1]}}})
- 數組的or查詢操作符$ordb.getCollection(‘image_detail’).find({$or:[{“dig” :{$not : {$in:[0,1]}}},{“group” : false}]})
- $exists判斷字段釋放存在,{group:{$exists:true}}表示存在group字段,false這是不存在db.getCollection(‘image_detail’).find({group:{$exists:true}})
- 巧妙的使用null,{group:null}可以查詢出group爲null的記錄,以及沒有group字段的記錄,如果要查詢出字段group爲null的值,就需要配合{$exists:true}的使用db.collection.find({group:{“$in”:[null],”$exists”:true}})
- 查詢記錄條數使用count()db.getCollection(‘image_detail’).find({group:null}).count()
- 用sort函數排序,sort({dig:1})按升序排序,sort({dig:-1})按降序排序db.getCollection(‘image_detail’).find().sort({dig:1})
db.getCollection(‘image_detail’).find().sort({dig:-1})
- skip和limit語句,跳過幾條記錄然後查詢指定數目的記錄db.getCollection(‘image_detail’).find().sort({dig:-1}).skip(10).limit(10)
- 數據更新update的使用,update常用到4個參數,第一個參數是查詢條件,
第二個參數是更新語句,
第三個參數upsert 可選參數意思是,如果不存在update的記錄,是否插入objNew,true爲插入,默認是false,不插入;
第四個參數multi_bool可選,默認是false,只更新找到的第一條記錄,如果這個參數爲true,就把按條件查出來多條記錄全部更新。
db.getCollection(‘image_detail’).update({}, {“$set”: {“dig”:3}},false,true)
- 數組更新push,刪除pulldb.getCollection(‘image_detail’).update({“group” : false},{“$pull”: {“tags”:”圖片”}},false,true)
db.getCollection(‘image_detail’).update({},{“$push”: {“tags”:”圖片”},”$inc”:{“dig”:1}},false,true)
- 數組切片查詢$slice,{“tags” : {$slice:10}}查詢數據前10條記錄,
{“tags” : {$slice:-10}}查詢數據後10跳記錄,
{“tags” : {$slice:[2,5}}查詢第2條數據後5條跳記錄
這個例子查詢顯示的字段爲tags,image,dig
db.getCollection(‘image_detail’).find({},{“tags”: {“$slice”:[2,3]},”_id”:0,”image”:1,”dig”:1})
- 遞增的參數$inc,遞減呢?{“$inc” : {“dig”:1}} 是dig字段增1,
{“$inc” : {“dig”:-1}} 是dig字段減1
- 刪除removedb.getCollection(‘image_detail’).find({“dig”:1})
- 常用helpdb.help()
db.find.help()
db.update.help()
wxgzh:ludong86