我有一个包含大约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