在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){...}