2017-10-06 30 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 } ] } 

如果你使用貓鼬,那麼你可以使用貓鼬的填充方法,它可以讓你引用其他集合中的文檔。

相關問題