我一直在嘗試在MongoDB中使用MapReduce來(lái)做我認(rèn)為簡(jiǎn)單的過(guò)程。我不知道這是否是正確的方法,甚至不應(yīng)該使用MapReduce。我用谷歌搜索了我想到的關(guān)鍵詞,并試圖在文檔中找到我認(rèn)為最成功的文檔,但是沒(méi)有結(jié)果。也許我在想這個(gè)嗎?我有兩個(gè)收藏夾:details和gpasdetails由一堆文件(3+百萬(wàn)個(gè))組成。所述studentid元件可以被重復(fù)兩次,每個(gè)year,如下所示:{ "_id" : ObjectId("4d49b7yah5b6d8372v640100"), "classes" : [1,17,19,21], "studentid" : "12345a", "year" : 1}{ "_id" : ObjectId("4d76b7oij7s2d8372v640100"), "classes" : [2,12,19,22], "studentid" : "98765a", "year" : 1}{ "_id" : ObjectId("4d49b7oij7s2d8372v640100"), "classes" : [32,91,101,217], "studentid" : "12345a", "year" : 2}{ "_id" : ObjectId("4d76b7rty7s2d8372v640100"), "classes" : [1,11,18,22], "studentid" : "24680a", "year" : 1}{ "_id" : ObjectId("4d49b7oij7s2d8856v640100"), "classes" : [32,99,110,215], "studentid" : "98765a", "year" : 2}...gpas具有與相同studentid的元素details。每個(gè)僅一個(gè)條目studentid,如下所示:{ "_id" : ObjectId("4d49b7yah5b6d8372v640111"), "studentid" : "12345a", "overall" : 97, "subscore": 1}{ "_id" : ObjectId("4f76b7oij7s2d8372v640213"), "studentid" : "98765a", "overall" : 85, "subscore": 5}{ "_id" : ObjectId("4j49b7oij7s2d8372v640871"), "studentid" : "24680a", "overall" : 76, "subscore": 2}...但是,當(dāng)我運(yùn)行它時(shí),這是我得到的集合:{ "_id" : "12345a", "value" : { "studentid" : "12345a", "classes_1" : [ ], "classes_2" : [ ], "overall" : 97, "subscore" : 1 } }{ "_id" : "98765a", "value" : { "studentid" : "98765a", "classes_1" : [ ], "classes_2" : [ ], "overall" : 85, "subscore" : 5 } }{ "_id" : "24680a", "value" : { "studentid" : "24680a", "classes_1" : [ ], "classes_2" : [ ], "overall" : 76, "subscore" : 2 } }我想念的類(lèi)數(shù)組。另外,順便說(shuō)一句,如何訪(fǎng)問(wèn)生成的MapReduce value元素中的元素?MapReduce總是輸出到value還是您將其命名為其他名稱(chēng)?
2 回答

qq_花開(kāi)花謝_0
TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
您不能為此使用m / r,因?yàn)樗鼉H設(shè)計(jì)用于一個(gè)集合。從多個(gè)集合中讀取將破壞分片兼容性,因此不允許這樣做。您可以使用新的聚合框架(2.1+)或在應(yīng)用程序內(nèi)部執(zhí)行所需的操作。
- 2 回答
- 0 關(guān)注
- 1423 瀏覽
添加回答
舉報(bào)
0/150
提交
取消