Mongo使用set而不是$ set

时间:2016-06-04 19:33:45

标签: mongodb meteor mongodb-query

我正在使用Meteor并正在更新文档并获取代码(错误地):

Programs.update({ _id: id}, { set: { LessonWk1: weekArray }});

而不是:

Programs.update({ _id: id}, { $set: { LessonWk1: weekArray }});

当我使用' set'它在更新运行时删除了文档。我没有看到任何'设置'在Mongo中执行命令。只是好奇如何从“设置”中删除文档。

1 个答案:

答案 0 :(得分:1)

这是documentation中提到的预期行为:

  

如果文档仅包含field:value表达式,则:

     

update()方法用文档替换匹配的文档。 update()方法不替换_id值。

这意味着您的文档会被替换为:

{ _id: id, set: { LessonWk1: weekArray }}

因为它没有替换_id值,您可以使用findOne返回新文档。

Programs.findOne( { _id: id } )