Mongodb 查詢

基本方法

操作 方法 實例 備註
讀取匹配文檔 find/findOne db.c.findOne()
讀取匹配的第一個文檔 findOne db.c.findOne()

拓展查詢

操作 方法 實例 備註
指定需要返回的鍵/值 find/findOne({},{‘key’:1})) find/findOne 第二個參數指定 key 值(key爲邏輯false,移除鍵)
$and 默認情況
條件匹配 小於/小於等於 $lt/$lte db.c.find({‘age’:{‘$lt’:18}})
條件匹配 大於/大於等於 $gt/$gte db.c.find({‘age’:{‘$gt’:18}})
條件匹配 不等於 $ne db.c.find({‘age’:{‘$ne’:18}})
條件匹配 多個值 $in db.c.find({‘age’:{‘$in’:[18,28,38]}}) 一個鍵 多個值
條件匹配 過濾多個值 $nin db.c.find({‘age’:{‘$in’:[18,28,38]}}) $in 取反
條件匹配 多個值 $or db.c.find({‘$or’:[{‘age’:18},{‘sex’:’female’}]}) 多個鍵 (第一個條件匹配更多 更高效)
餘值匹配 $mod db.c.find({‘age’:{‘$mod’:[{5,1]}) 將查詢的值除以第一個值,若餘數等於第二個值,則匹配成功
取反 $not db.c.find({‘age’:{‘$not’:{“$in”:[{5,1]}}) 元條件 可以其他條件之上使用
判定鍵位存在 $exists db.c.find({‘age’:{“$exists”:true}
db.c.find({‘age’:{“$in”:[{null],”$exists”:true})
null 類型會匹配值不爲 null 的文檔,$exists 解決這問題
匹配多個 數組元素 $all db.c.find({‘type’:{“$all”:[‘a’,’b’]}) 匹配type 中含有[‘a’,’b’,…]
匹配 數組長度 $size db.c.find({‘type’:{“$size”:3})
控制 匹配數組返回數據長度 $slice db.c.find({},{‘type’:{“$slice”:3})
db.c.find({},{‘type’:{“$slice”:[3,10]})
前三個 type (-3 後三個);也可以是截取(4-13);(除非特別聲明,否則使用“$slice“時將返回所有鍵)
範圍匹配 $elemMatch db.c.find({‘age’:{“$elemMatch”:{‘$gl’:10,’$lt’:20}}) 解決 age爲數組時; 在數組中範圍查找的 缺陷
自定義條件 $where db.c.find({$where:function(){if(….){return true}else{return false}) 需要將文檔從BSON 轉爲js 運行,效率低 慎用

遊標

操作 方法 實例 備註
限制最大返回數量 limit db.c.find().limit(3)
略過匹配文檔 skip db.c.find().skip(3)
排序 sort db.c.find().sort({‘a’:1}) 1升序 -1 降序;不同鍵值類型從小到大:null<Number<String<Object
<Array<Blob<Boolean<
Date<Timestamp<RegExp
掃描文檔上線 $maxScan db.c.find(a)._addSpecial(“$macScan”:10) 匹配 到指定數量的文檔,要多少查詢多少
掃描文檔上限 $max db.c.find({}).max({‘age’:28}) 最大值 需要建立索引
掃描文檔下限 $min db.c.find({}).min({‘age’:18}) 最小值,max min 配合使用
顯示磁盤信息 $showDiskLoc ._addSpecial(“$showDiskLoc” , true)
過濾 鍵 $showDiskLoc db.c.find({}).hint({age:1})
快照查詢 snapshop db.c.find({}).snapshop() _index 檢索 避免 文檔重複返回,但影響速度
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章