Mongo:通过ObjectId查找未在流星中定义?

时间:2015-05-08 11:29:19

标签: javascript mongodb meteor mongodb-query

我在流星项目中使用现有的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代码在服务器中运行。

3 个答案:

答案 0 :(得分:5)

您必须使用new Mongo.ObjectID("5539d9dcf046be5b2302aefc")。有关注意事项,请参阅meteor docs

如果您希望每次都必须输入newMongo.,您可以定义一个功能:

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