mongo(1.4.4)请求有问题

时间:2013-03-01 15:39:30

标签: javascript node.js mongodb node-mongodb-native

当我这样查询时:

collection.find({ "position": { $in: [ 1, 2 ] } }).toArray()....

当我使用$and$or时,我得到了正确的结果,例如:

collection.find({ $or: [ { "position": 1 }, { "position": 2 }  ] }).toArray()...

我总是得到空的结果

编辑:尝试在控制台中查询时,我得到:

> db.foo.find({"position":{$in:[1,2]}})
{ "name" : "Jon Doe", "position" : 1, "arrival" : "8:00", "_id" :ObjectId("512e2ed286d19b9e4d000001") }
{ "name" : "Jack Smith", "position" : 2, "arrival" : "10:00", "_id" : ObjectId("512e2ed286d19b9e4d000007") }
  

db.foo.find({$ or:[{“position”:1},{“position”:2}]})

  //nothing here

由此,我得到了印象,我的代码没问题,问题出在其他地方......

2 个答案:

答案 0 :(得分:2)

查询类似的内容,

> db.foo.find({"x":{$in:[1,2]}})
{ "_id" : ObjectId("513046c8ec1e5e38449f1789"), "x" : 1, "y" : 2 }
{ "_id" : ObjectId("5130cdfdf8378ccc2005bcf2"), "x" : 2 }
> 

> db.foo.find( { $or : [{"x":1},{"x":2}]} )
{ "_id" : ObjectId("513046c8ec1e5e38449f1789"), "x" : 1, "y" : 2 }
{ "_id" : ObjectId("5130cdfdf8378ccc2005bcf2"), "x" : 2 }
> 

答案 1 :(得分:2)

您需要使用较新版本的Mongo。它支持版本> 1.6 即可。

请参阅changelog