等价查询某个数组:
db.getCollection("test").find( { tags: ["good","book","it","program"] } );
(//连顺序都要是存进去的顺序,不能变)
查询数组里的某一个值:
db.getCollection("test").find( { tags: "good" } );
查询有四个元素的数组:
db.getCollection("test").find( { tags: {$size: 4} } );
查询有或没有指定字段的,指定字段为null的情况:
db.getCollection("test").insert( [ {_id: 2222, toy: null}, {_id: 1112} ] ); db.getCollection("test").find( {_id: 2222, toy: null} ); db.getCollection("test").find( toy: null ); //报错 db.getCollection("test").find( {_id: 2222, toy: {$exists: true}} ); //找出来了当前这条 db.getCollection("test").find( {toy: {$exists: true}} ); //找出来了当前这条 db.getCollection("test").find( {toy: {$exists: false}} ); //找出所有没有toy这个字段的
查找返回值游标:
db.getCollection("test").find().forEach(function(item) { print(item.name, item.price, item.tags); });
limit,skip方法:
db.getCollection("test").find().limit(1) db.getCollection("test").find().skip(2)
$in的查询:
db.getCollection("test").find( { _id: { $in: {12, objectId("56970120abt538296thg0y6")} } } ); //查找_id等于12或objectId("56970120abt538296thg0y6")的文档记录
($in 用于不同文档指定同一个Key 进行或条件匹配, $or 可以指定多个Key 或条件匹配。)
区间查找:
db.getCollection("test").find( { price: {$gt: 3, $lt: 33} } ); //查询价格范围大于3小子33的值。可用于文档数值字段,也可以用于数组字段