1
假設我在我的藏品中有'電影'物品。電影有很多演員,演員屬於很多電影。許多一對多。MongoDB:從子數組創建另一個集合? (多對多的關係)
如何創建另一個由唯一的「actor」元素組成的集合?請記住,一些演員將被列入多部電影中。
{
"_id" : ObjectId("4edcffa5f320646bc8bd76b4"),
"directed_by" : [
"John Gilling"
],
"forbid:genre" : null,
"genre" : [ ],
"guid" : "#9202a8c04000641f8000000000b02e5d",
"id" : "/en/pirates_of_blood_river",
"initial_release_date" : "1962",
"name" : "Pirates of Blood River",
"starring" : [
{
"actor" : {
"guid" : "#9202a8c04000641f800000000006823e",
"id" : "/en/christopher_lee",
"name" : "Christopher Lee",
"lc_name" : "christopher lee"
}
},
{
"actor" : {
"guid" : "#9202a8c04000641f80000000001de22e",
"id" : "/en/oliver_reed",
"name" : "Oliver Reed",
"lc_name" : "oliver reed"
}
},
{
"actor" : {
"guid" : "#9202a8c04000641f80000000003b41da",
"id" : "/en/glenn_corbett",
"name" : "Glenn Corbett",
"lc_name" : "glenn corbett"
}
}
]
}
所以你想使用你當前的mongo數據庫分拆並創建一個單獨的演員集合?看起來這最好是通過你創建的函數來完成,你用哪種語言來與mongo進行交互,或者通過mongo上的js函數進行交互。 – Petrogad
@Frederico就是這樣,是的。我想甚至打擾創建一個單獨的集合的主要原因是因爲Mongo目前無法返回查詢匹配的嵌套數組元素。例如,如果我想查詢所有名爲「Johnny」的演員的當前電影集合,而我可以獲取所有返回的具有演員姓名約翰尼的電影文檔,但我無法獲取該元素的演員信息匹配,即:'Johnny Depp','Johnny Carson'等。這個功能應該在Mongo v2.1.1中發佈(請參閱:https://jira.mongodb.org/browse/SERVER-828) – k00k