0

是否可以执行将其限制为键值的查询?前任。

"1":{
     ...
    }
"2":{
     ...
    }
"3":{
     ...
    }

执行键值小于 3 且大于 1 的查询。

4

2 回答 2

0

MongoDb 没有 $between 运算符。

您将需要使用 $lt(小于或 $lte - 小于等于)和 $gt(大于或 $gte - 大于等于)来定义您要查找的范围。像这样的东西应该工作。

{
"_id" : {$gt : 1 , $lt : 3}
}
于 2013-04-30T18:32:18.803 回答
0

我猜你正在寻找 $exists 查询。但它不支持范围存在。

db.testing.find()
{ "_id" : ObjectId("51380b1838fa3b768b5aa6b6"), "a" : 1 }
{ "_id" : 1, "x" : [ 1, 2, 3 ] }
{ "_id" : "id1", "a" : 1, "b" : "abhishek", "c" : true }

db.testing.find({_id : { $exists :  1}, a : {$exists : 1} })
{ "_id" : ObjectId("51380b1838fa3b768b5aa6b6"), "a" : 1 }
{ "_id" : "id1", "a" : 1, "b" : "abhishek", "c" : true }

仅供参考:我认为这些查询不会使用索引,因此操作会很慢。检查下面的解释命令以获取 $exists 查询。

db.testing.find({_id : { $exists :  1}}).explain()
{
    "cursor" : "BasicCursor",
    "isMultiKey" : false,
    "n" : 3,
    "nscannedObjects" : 3,
    "nscanned" : 3,
    "nscannedObjectsAllPlans" : 3,
    "nscannedAllPlans" : 3,
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 0,
    "nChunkSkips" : 0,
    "millis" : 0,
    "indexBounds" : {

    },
    "server" : "bdvlpabhishekk:27016"
}
于 2013-04-30T18:12:44.827 回答