将文档中的字段附加到具有匹配字段MongoDB

时间:2017-10-06 08:15:19

标签: mongodb

我正在尝试编写MongoDB查询以完成下面解释的内容。我不知道mongoDB是否可行。我知道如何在单个文档或多个文档中插入字段,但我的问题是没有进展。 我有一个集合(比如说“procs”)有5000个文件,如:

{     “sid”:1     “触发”:[         {             “post_time”:0,             “p_start”:1487303363.8170002,             “pid”:1         }
    ] }

这是来自不同集合的另一个文档-2(例如“acqs”):

{     “sn”:10302301,     “日期”:“2017-12-11”,     “sid”:1     “acqs”:[{             “aqid”:2,             “aq_end”:1487305607.342         }     ] } 该集合还包含大约5000个文档。

现在我想将文档2中的“sn”和“date”字段插入到对应于相同“sid”字段值的文档1中。 所以我想输出这样的东西:  {     “sn”:10302301,     “日期”:“2017-12-11”,     “sid”:1     “procs”:[{             “post_time”:0,             “p_start”:1487303363.8170002,             “pid”:1         }     ] }

1 个答案:

答案 0 :(得分:1)

在mongoDb中,您可以使用$ lookup

div {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0px;
  margin: auto;
  width: 100px;
  height: 100px;
}

结果将如下:

db.procs.aggregrate([
   {
      $lookup:
        {
          from: "acqs",
          localField: "sid",
          foreignField: "sid",
          as: "procs_docs"
        }
   }

])

如果您使用的是mongoose,那么您可以使用mongoose的populate方法,它允许您引用其他集合中的文档。