【问题标题】:Mongo: find by ObjectId is not defined in meteor?Mongo:通过 ObjectId 查找未在流星中定义?
【发布时间】:2015-05-08 11:29:18
【问题描述】:

我在流星项目中使用现有的 Mongodb。 ObjectId() 表示的现有 mongo id。当我尝试通过_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 代码是在服务器中运行的。

【问题讨论】:

    标签: javascript mongodb meteor mongodb-query


    【解决方案1】:

    你必须使用new Mongo.ObjectID("5539d9dcf046be5b2302aefc")。请参阅meteor docs 了解一些注意事项。

    如果你不想每次都输入newMongo.,你可以定义一个函数:

    function ObjectId(hexString) { return new Mongo.ObjectID(hexString); };
    

    然后你写的代码就可以工作了。

    【讨论】:

      【解决方案2】:

      您只需要从您的 mongo 中获取 ObjectId 函数。

      ObjectId = require('mongodb').ObjectID;
      

      那么你可以这样使用它:

      ObjectId("5539d9dcf046be5b2302aefc")
      

      【讨论】:

        【解决方案3】:

        如果你使用的是 mongojs:

        db.mycollection.findOne({
            _id: mongojs.ObjectId('your object id')
        }, function(err, doc) {
            //do your stuff here.
        })
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-11
          • 1970-01-01
          • 2015-07-02
          • 2015-10-06
          • 1970-01-01
          • 2011-09-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多