我有一個包含大約110萬個文檔的集合。這個集合中有相當多的重複,我最終將通過mapreduce消除這個重複。無論其...MongoDB:合併陣列
這裏是冗餘數據的一個示例:
{
"_id": ObjectId("4ec6d3ac61910ad451f1eb7a"),
"bii": 10.8105,
"class": 2706,
"decdeg": -48.8432,
"lii": 286.488,
"name": "HD 97312",
"radeg": 167.8669,
"vmag": 8.2,
"xref": ["HD 97312"]
}
{
"_id": ObjectId("4ec6d44c61910ad451f8b255"),
"bii": 10.802,
"class": 2900,
"decdeg": -48.8517,
"decpm": -0.008,
"lii": 286.4896,
"name": "PPM 316146",
"radeg": 167.8644,
"rapm": -0.0003,
"vmag": 8.2,
"xref": ["CPD -48 3792", "-48 6250", "HD 97312", "PPM 316146", "SAO 222629"]
}
{
"_id": ObjectId("4ec6d48c61910ad451ff1ead"),
"bii": 10.802,
"class": 2700,
"decdeg": -48.8517,
"decpm": -0.013,
"hd_component": 0,
"lii": 286.4897,
"name": "SAO 222629",
"radeg": 167.8647,
"rapm": -0.0006,
"vmag": 8.3,
"xref": ["CP-48 3792", "HD 97312", "SAO 222629"]
}
由於外部參照數組保存所有的交叉引用的,我不知何故需要將這些陣列組合成一個單一的一個移除重複。
任何人都可以提出一個「簡單」的方法來做到這一點,所以我不必編寫某種遞歸js函數?
在過程結束時,您是否希望這三個文件中的每一個都包含「[」CPD -48 3792「,」-48 6250「,」HD 97312「,」PPM 316146「,」SAO 222629「]'因爲它們都是交叉引用的?或者你是否想要在所有文檔中構建所有外部參照的列表?請解釋預期的輸出。 –
你是對的。所有這些交叉引用文檔的最終結果數組應該相同。 – Jason