我正在尝试通过Chrome的控制台更新Mongo记录。
Posts.update('hexidhere', {$set: {title: 'something text here'}});
问题在于创建Mongo终端的文档。他们被分配了一个像这样的id(_str和_proto嵌套在_id中):
_id: LocalCollection._ObjectID
_str: '54ff06801ad15adbb3d1090'
_proto: LocalCollection._ObjectId
title: 'dummy title here'
当我通过chrome的控制台(而不是mongo终端)添加另一个测试文档时,它似乎正确地添加了一个ID,并且一切都按预期工作:
_id: 'EtPt9ntXtxG4qo9Tb'
title: 'dummy title here'
我的问题是: 有没有人知道如何使ID始终是简单的HexStrings(如第二个例子),或者是否有一个正确的方法来访问LocalCollection中的嵌套str值(我已经尝试过Mongo.ObjectID('hexidhere'), 'theidhere',以及其他一大堆东西)?
答案 0 :(得分:1)
Mongo喜欢将ObjectId
用于_id
,Meteor选择使用String
。要了解详情,请参阅现已弃用的Google群组convo:https://groups.google.com/forum/#!topic/meteor-talk/f-ljBdZOwPk
要获取ObjectId
的字符串,请使用str
方法,如ObjectId("310458asdf323452").str
所示。有关详细信息,请参阅此处:http://docs.mongodb.org/manual/reference/object-id/