Node.js MongoDB通过_id查找全部

时间:2017-09-15 03:58:47

标签: node.js mongodb

我想这样做,在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")]是示例

2 个答案:

答案 0 :(得分:1)

你是否尝试过这种方式

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

答案 1 :(得分:0)

尽量不要在查询中定义对象。将其作为另一个变量传递。

e.g:

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