在MongoDB中,如何使用另一个文档(共享主键)中的其他字段更新文档?

时间:2014-08-04 00:48:03

标签: mongodb

我是一名MongoDB新手,但已经接受了一些基础培训。但是,我无法处理这个(看似简单的)情况: 我用两个API调用的结果填充我的数据库。第一个调用返回一堆包含主键的字段:NAME。第二个调用会获取每个NAME的其他详细信息。我已将第一次调用的结果插入到数据库中。当我进行第二次调用时,我想使用匹配的NAME更新文档,以包含第二个API调用返回的所有其他字段和值。 (例如,第一个调用返回一个配方NAME和一堆关于配方的元数据;第二个调用返回一个成分列表,我想根据匹配的NAME将这些添加到该配方的文档中。)

这不容易吗?或者这是否合并,我认为mongo不支持?在这种情况下,我假设我只是将第二个呼叫的结果作为单独的文档插入,并在将来对NAME进行查询,以便提取与该NAME相关的两个文档?

1 个答案:

答案 0 :(得分:2)

您必须使用db.collection.update()调用才能完成此操作。你在这里做的是传递查询以找到正确的文档,在你的情况下它是NAME,然后适当地更新文档。

例如:让我们说更新名称是' eamcvey'并且您想要输入地址和电话号码字段。您要输入的命令如下所示:

db.collection.update(
    {NAME : 'eamcvey'},
    {
      $set : {Address : 'Updated Value of Address'},
      $set : {PhoneNumber : '123456'}
    },
   );

有关更详细的文档,请转到此link on update command in MongoDB