2017-10-06 60 views
0

我正在尝试编写MongoDB查询来完成以下解释的内容。我不知道在mongoDB中是否有可能。我知道如何在单个文档或多个文档中插入一个字段,但我的问题没有多大改进。 我有一个集合(称之为 “特效”),具有5000个文档,如:将文档中的字段附加到具有匹配字段的其他文档MongoDB

{ “SID”:1 “特效”: { “post_time”:0, “P_START”:1487303363.8170002, “PID”:1 }
] }

这里是从不同的收集另一个文档-2(称之为 “ACQS”):

{ “SN”:10 302301, “日期”: “2017年12月11日”, “SID”:1 “ACQS”:[{ “aqid”:2, “aq_end”:1487305607.342 } ] } 此集合还包含大约5000个文件。

现在我想从文档2插入“sn”和“日期”字段到文档1对应相同的“sid”字段值。 所以我想输出是这样的: { “SN”:10302301, “日期”: “2017年12月11日”, “SID”:1 “特效”:[{ “post_time”:0 , “P_START”:1487303363.8170002, “PID”:1 } ] }

回答

1

在MongoDB中,你可以使用$查找

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

]) 

结果会是这样的:

{ 
"sn": 10302301, "date": "2017-12-11", "sid": 1 , 
"acqs": [{ "aqid": 2, "aq_end": 1487305607.342 } ] 
"procs_doc": ["sid": 1,procs:{ "post_time": 0, "p_start": 1487303363.8170002, "pid": 1 } ] } 

如果你使用猫鼬,那么你可以使用猫鼬的填充方法,它可以让你引用其他集合中的文档。

相关问题