【发布时间】:2020-05-01 05:38:10
【问题描述】:
好的,所以,我有两个系列。其中一个有 6M 文档,另一个有 25M 文档。我希望它们在一个新系列中:
集合 1 示例:
电影
{"movieId" : "1", "name" : "Titanic"},
{"movieId" : "2", "name" : "King Kong"}
集合 2 示例:
人物
{"characterId": "1", "movieId": "1", "characterName": "Name 1"},
{"characterId": "2", "movieId": "1", "characterName": "Name 2"},
{"characterId": "3", "movieId": "1", "characterName": "Name 3"}
所以我想要一个新的集合,例如:
{
"movieId" : "1",
"name" : "Titanic",
"characters":[ *collection 2 here* ]
},
{
"movieId" : "2",
"name" : "King Kong",
"characters":[]
}
我试过了:
db.Movie.aggregate([{ $lookup: { from: "Character",localField: "movieId", foreignField: "movieId", as: "characters" }},{ $out : "movie_characters" }])
但它永远不会结束 :((我的意思是 10 小时后它仍在思考)如果我在没有 $out 的情况下执行它,它可能会在 10 分钟内显示结果。
我在 $out 上做错了吗?
感谢您的建议。
【问题讨论】:
-
哪个集合有 25M 文档?
标签: mongodb aggregate mongodb4.0