我有兩個MongoDB
集合:第一個是下面,其包括用於不同的ID的頻率信息,並且顯示(截短形式)的集合:MongoDB - 如何使用MapReduce將一個集合中的值合併到第二個集合的多個鍵上的另一個集合中?
[
{
"_id" : "A1",
"value" : 19
},
{
"_id" : "A2",
"value" : 6
},
{
"_id" : "A3",
"value" : 12
},
{
"_id" : "A4",
"value" : 8
},
{
"_id" : "A5",
"value" : 4
},
...
]
第二集合是更復雜的,幷包含在列出的每個_id
信息第一個集合(這就是所謂frequency_collection_id
第二集合中),但frequency_collection_id
可能是兩個列表裏(info.details_one
,並info.details_two
)爲每個記錄:
[
{
"_id" : ObjectId("53cfc1d086763c43723abb07"),
"info" : {
"status" : "pass",
"details_one" : [
{
"frequency_collection_id" : "A1",
"name" : "A1_object_name",
"class" : "known"
},
{
"frequency_collection_id" : "A2",
"name" : "A2_object_name",
"class" : "unknown"
}
],
"details_two" : [
{
"frequency_collection_id" : "A1",
"name" : "A1_object_name",
"class" : "known"
},
{
"frequency_collection_id" : "A2",
"name" : "A2_object_name",
"class" : "unknown"
}
],
}
}
...
]
什T I正在尋找做,是合併的頻率信息(從第一個集合)進入第二收集,封筆的集合,它看起來像:
[
{
"_id" : ObjectId("53cfc1d086763c43723abb07"),
"info" : {
"status" : "pass",
"details_one" : [
{
"frequency_collection_id" : "A1",
"name" : "A1_object_name",
"class" : "known",
**"value" : 19**
},
{
"frequency_collection_id" : "A2",
"name" : "A2_object_name",
"class" : "unknown",
**"value" : 6**
}
],
"details_two" : [
{
"frequency_collection_id" : "A1",
"name" : "A1_object_name",
"class" : "known",
**"value" : 19**
},
{
"frequency_collection_id" : "A2",
"name" : "A2_object_name",
"class" : "unknown",
**"value" : 6**
}
],
}
}
...
]
我知道,這應該是可能的MongoDB的MapReduce
函數,但是我看到的所有例子對於我的集合結構來說都太小,或者回答的問題不是我想要的。
有沒有人有任何指針? 如何將我的頻率信息(從我的第一個集合中)合併到記錄中(在第二個集合的每個記錄的兩個列表中)?
我知道這是多還是少一個JOIN
,這MongoDB
不支持,但是從我的閱讀,看起來這是MapReduce
一個最好的例子。
我正在學習Mongo,因爲我可以,所以請原諒我,如果我的問題太天真了。