查詢 name <> "bruce" and age >= 18 的數據
db.users.find({name: {$ne: "bruce"}, age: {$gte: 18}}); javascript
查詢 creation_date > '2010-01-01' and creation_date <= '2010-12-31' 的數據
db.users.find({creation_date:{$gt:new Date(2010,0,1), $lte:new Date(2010,11,31)}); java
查詢 age in (20,22,24,26) 的數據
db.users.find({age: {$in: [20,22,24,26]}}); 函數
查詢 age取模10等於0 的數據
db.users.find('this.age % 10 == 0');
或者
db.users.find({age : {$mod : [10, 0]}}); 學習
匹配全部
db.users.find({favorite_number : {$all : [6, 8]}});
能夠查詢出{name: 'David', age: 26, favorite_number: [ 6, 8, 9 ] }
能夠不查詢出{name: 'David', age: 26, favorite_number: [ 6, 7, 9 ] } this
查詢不匹配name=B*帶頭的記錄
db.users.find({name: {$not: /^B.*/}});
查詢 age取模10不等於0 的數據
db.users.find({age : {$not: {$mod : [10, 0]}}}); spa
#返回部分字段
選擇返回age和_id字段(_id字段老是會被返回)
db.users.find({}, {age:1});
db.users.find({}, {age:3});
db.users.find({}, {age:true});
db.users.find({ name : "bruce" }, {age:1});
0爲false, 非0爲true ip
選擇返回age、address和_id字段
db.users.find({ name : "bruce" }, {age:1, address:1}); it
排除返回age、address和_id字段
db.users.find({}, {age:0, address:false});
db.users.find({ name : "bruce" }, {age:0, address:false});
另外這裏要說一下幾種查詢語法:
查詢 age > 18 的記錄,如下查詢都同樣
db.users.find({age: {$gt: 18}});
db.users.find({$where: "this.age > 18"});
db.users.find("this.age > 18");
f = function() {return this.age > 18} db.users.find(f);#javascript函數方式查詢。、
我我的比較喜歡後兩種,結構比較清晰一點。
好,今天就學習到這裏,明天繼續多條件查詢。 io