1. 程式人生 > >mongodb相關查詢總結

mongodb相關查詢總結

1.1、條件查詢(<,<=,>,>=)
    db.collection.find({"field" : {$gt : value}});//大於,field > value
    db.collection.find({"field" : {$lt : value}});//小於,field  < value
    db.collection.find({"field" : {$gte : value}});//大於等於,field >= value
    db.collection.find({"field" : {$lte : value}});//小於等於, field <=value
db.collection.find({"field" : {$gt : value1, $lt : value2}});大於value1,小於value2 1.2$all匹配所有(滿足[]內的所有值) db.users.find({age : {$all : [6, 8]}}); 可以查出{name : "zhangsan", age:[6, 8, 9]},查不出{name : "zhangsan", age : [6, 7, 9]} 1.3$exists 判斷欄位是否存在 db.users.find({age : {$exists : true
}}); //查詢所有存在age欄位的記錄 db.users.find({age : {$exists : false}});//查詢所有不存在age欄位的記錄 1.4Null值處理 Null值的處理稍微有一點奇怪 ,”null”不僅能找到它自身,連不存在該欄位的記錄頁可以被找出來。所以我們要使用exits來限制。 db.users.find({age : {"$in" : [null], "$exists" : true}}); 1.5 $mod 取模運算 查詢 age 取模 10 等於 0 的資料 db.student.find({age: {$mod : [ 10
, 0 ]}} ) 1.6$ne 不等於 db.users.find({age : {$ne : 20}}); 1.7$in 包含(與sql用法一樣) db.users.find({age : {$in : [20, 25, 30]}}); db.users.find({name : /張/});//模糊查詢名字出現'張' db.getCollection('data').find({"type" : {$in : [/資金不足/]}});//模糊查詢type陣列中包含'資金不足' 1.8$nin 不包含 db.users.find({age : {$nin : [18, 20, 21]}}); 1.9$size 陣列元素個數 db.users.find({subjects : {$size : 3}});//查詢有三個科目的記錄 1.10 正則表示式匹配 db.users.find({name: {$not: /^B.*/}});//查詢不匹配 name=B*帶頭的記錄 db.getCollection('data').find({"name": {$regex:/liuzhilun.*/i}})//查詢name包含liuzhilun 1.11 Javascript 查詢和$where 查詢 查詢 a 大於 3 的資料,下面的查詢方法殊途同歸 db.c1.find({a : {$gt: 3}}); db.c1.find({$where: "this.a > 3"}); db.c1.find("this.a > 3"); f = function() { return this.a > 3; } db.c1.find(f); 1.12 count 查詢記錄條數 db.users.find().count();//count 查詢記錄條數 db.users.find().skip(10).limit(5).count();//以下返回的不是 5,而是 user 表中所有的記錄數量 db.users.find().skip(10).limit(5).count(true);//返回限制之後的記錄數量,要使用 count(true)或者 count(非 0) 1.13 skip 限制返回記錄的起點 db.users.find().skip(3).limit(5);//從第 3 條記錄開始,返回 5 條記錄(limit 3, 5) 1.14 sort 排序 db.users.find().sort({age: 1});//以年齡升序 asc db.users.find().sort({age: -1});//以年齡降序 desc 1.15 查詢返回指定的欄位 db.users.find().sort({},{"欄位1":1,"欄位2":1});//1表示返回、0表示不返回 1.16 去重查詢 db.getCollection('info').distinct("workAddress", {"mobliePhone" : "13266668888"}) **2 新增索引**: db.blacklist.ensureIndex({"orderId":"hashed"});//給blacklist表新增orderId的hashed索引