我在流星项目中使用现有的Mongodb。现有的mongo id由ObjectId()
表示。当我试图通过_id
找到时,Meteor说ObjectId is not defined
JS :
Names = new Mongo.Collection('name_list', {idGeneration: 'MONGO'});
Names.find({"_id" : ObjectId("5539d9dcf046be5b2302aefc")}) //ReferenceError: ObjectId is not defined
以上JavaScript代码在服务器中运行。
答案 0 :(得分:5)
您必须使用new Mongo.ObjectID("5539d9dcf046be5b2302aefc")
。有关注意事项,请参阅meteor docs。
如果您希望每次都必须输入new
和Mongo.
,您可以定义一个功能:
function ObjectId(hexString) { return new Mongo.ObjectID(hexString); };
然后你编写的代码就可以了。
答案 1 :(得分:3)
您只需要从您的mongo中获取ObjectId函数。
ObjectId = require('mongodb').ObjectID;
然后你可以这样使用它:
ObjectId("5539d9dcf046be5b2302aefc")
答案 2 :(得分:2)
如果您使用的是mongojs:
db.mycollection.findOne({
_id: mongojs.ObjectId('your object id')
}, function(err, doc) {
//do your stuff here.
})