如何在mongodb中加入2个集合
我有两件收藏品 材料包装如何在mongodb中加入2个集合,mongodb,aggregate,Mongodb,Aggregate,我有两件收藏品 材料包装 { "_id" : ObjectId("5e43bd417b5590b641d2f408"), "title" : "untitle", "ref" : [ {"id" : ObjectId("5e43bd517b5590b641d2f409")}, {"id" : ObjectId("5e43bd517b5590b641d2f40a")}, {"id" : ObjectId("5e43bd517b5590b641d2f40b")}
{
"_id" : ObjectId("5e43bd417b5590b641d2f408"),
"title" : "untitle",
"ref" : [
{"id" : ObjectId("5e43bd517b5590b641d2f409")},
{"id" : ObjectId("5e43bd517b5590b641d2f40a")},
{"id" : ObjectId("5e43bd517b5590b641d2f40b")}
]
及
材料
[
{
"_id" : ObjectId("5e43bd517b5590b641d2f409"),
"mine_type" : "image/gif"
},
{
"_id" : ObjectId("5e43bd517b5590b641d2f40a"),
"mine_type" : "image/jpeg"
},
{
"_id" : ObjectId("5e43bd517b5590b641d2f40b"),
"mine_type" : "image/jpeg"
},
]
我想要的是把它们和这个代码结合起来
db.material_pack.aggregate([
{
$lookup:
{
from: 'material',
localField: 'ref.id',
foreignField: '_id',
as: "items_document"
}
}
])
但items_文档字段的结果为[]
我的结果是:
{
"_id" : ObjectId("5e43bd417b5590b641d2f408"),
"title" : "untitle",
"content" : "",
"categories" : [],
"ref" : [
{
"id" : ObjectId("5e43bd517b5590b641d2f409")
},
{
"id" : ObjectId("5e43bd517b5590b641d2f40a")
},
{
"id" : ObjectId("5e43bd517b5590b641d2f40b")
}
],
"items_document" : [ ]
}
我想要这样的结果:
{
"_id" : ObjectId("5e43bd417b5590b641d2f408"),
"title" : "untitle",
"content" : "",
"categories" : [],
"ref" : [
{
"id" : ObjectId("5e43bd517b5590b641d2f409")
},
{
"id" : ObjectId("5e43bd517b5590b641d2f40a")
},
{
"id" : ObjectId("5e43bd517b5590b641d2f40b")
}
],
"items_document" : [
{
"_id" : ObjectId("5e43bd517b5590b641d2f409"),
"mine_type" : "image/gif",
...
},
{
"_id" : ObjectId("5e43bd517b5590b641d2f40a"),
"mine_type" : "image/jpeg",
...
},
{
"_id" : ObjectId("5e43bd517b5590b641d2f40b"),
"mine_type" : "image/jpeg",
...
}
]
}
你好,阿皮乌特·特鲁斯菲迈,
请检查这个,它可能对你有帮助。
我已经使用了您的代码和集合,您的代码中不需要任何更改。它运行良好,您可以查看我的给定链接。我已经尝试了您的代码。它工作得非常好。可能需要仔细检查代码中的集合名称和字段名称。我也刚刚尝试运行查询,得到了正确的结果。感谢您的回答。看起来我的代码是正确的,但不知怎么的,它在该数据库中不起作用,所以我通过更改数据库解决了此问题,它现在起作用了,但我不明白为什么会发生此问题?