在Node中用'_id'searchMongoDB条目的正确方法

我在Node使用MongoDb (作为MongoDb一部分)。 这里是MongoJS的文档 。

我试图根据条目的_id字段在Node内进行调用。 当从控制台使用vanilla MongoDB ,我可以这样做:

db.products.find({"_id":ObjectId("51d151c6b918a71d170000c7")})

并正确返回我的条目。 但是,当我在Node中做同样的事情,如:

 db.products.find({"_id": ObjectId("51d151c6b918a71d170000c7")}, function (err, record) { // Do stuff }); 

我得到ReferenceError: ObjectId is not defined

什么是这样做的正确协议?

在使用它之前,你需要使用ObjectId函数:

 var ObjectId = require('mongodb').ObjectID; 

如果你正在使用mongoose,你可以试试这个:

 var mongoose = require('mongoose') usersSchema = mongoose.model('users'), mongoose.Types.ObjectId("<object_id>") usersSchema.find({"_id": mongoose.Types.ObjectId("<object_id>")}, function (err, record) { // Do stuff }); 

如果你正在使用MongoJS,你可以这样做:

 var ObjectId = mongojs.ObjectId; 

然后,

 db.users.find({"_id": ObjectId(id)}, function(err, user){...}