Node.js MongoDB查找所有_id

我想这样做,在mongo控制台中工作正常

> db.user.find({"_id": {$in: [ObjectId("55efa50a6f002c766e8b4571") ,ObjectId("56e9cc2d6f002ccf028b4567")]}}); 

在NodeJs中,但这不起作用:

 user_collection.find({"_id":{$in: [new ObjectId("55efa50a6f002c766e8b4571"), new ObjectId("56e9cc2d6f002ccf028b4567")]} }).... 

我正在使用本地mongodb驱动程序

 var MongoClient = require('mongodb').MongoClient; var dbConfig = config.get('Autenthication.dbConfig'); var ObjectId = require('mongodb').ObjectID; MongoClient.connect(dbConfig.url, function (err, db) { var user_collection = db.collection('user'); user_collection.find({"_id":{$in: [new ObjectId("55efa50a6f002c766e8b4571")]} }, {_id:true, name:true, email:true ,emailAccount:true, idFacebook:true}).each(function(err, user) { //code code code }); }); 

[new ObjectId("55efa50a6f002c766e8b4571")]就是例子

你试过这种方式吗?

 var ObjectId = require('mongodb').ObjectId; user_collection.find({"_id":{$in: ["55efa50a6f002c766e8b4571", "56e9cc2d6f002ccf028b4567"]} }).... 

尽量不要在查询中定义对象。 把它作为另一个variables。

例如:

 var id1 = "55efa50a6f002c766e8b4571"; user_collection.find({"_id":{$in: [id1]} }) ....