Meteor通过ID更新Mongo Doc

时间:2015-03-10 16:58:42

标签: mongodb meteor

我正在尝试通过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',以及其他一大堆东西)?

1 个答案:

答案 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/