【发布时间】:2020-10-29 18:43:35
【问题描述】:
我正在为我的 MongoDB 查找问题寻找一个简单的解决方案。
我有两个收藏:
Disp 结构如下:
{"_id" : ObjectId("5f748869487b4d0013ee50b4"),
"productId": ObjectId("5f9a96f85b909923e8530f0c"),
"subproductId" ObjectId("5e8b3684a82c2a00134e507a"),
},
{"_id" : ObjectId("5f74870e487b4d0013ee50b3"),
"productId": ObjectId("5f7b4b17e8ec6a00158bb5d8"),
"subproductId" ObjectId("5f78303a82f45e0013afebc1"),
}
和一个具有以下结构的集合“产品:
{_id: ObjectId("5f9a96f85b909923e8530f0c"),
subproduct: [ {
_id:ObjectId("5e8b3684a82c2a00134e507a"),
title: "Test"
},
{_id: ObjectId("5f369a94018c040013c76ede"),
title: "Test 1"}
]},
{_id:ObjectId("5f7b4b17e8ec6a00158bb5d8"),
subproduct: [ {
_id: ObjectId("5f7b43efe8ec6a00158bb5cc"),
title: "Test3"
}, {
_id: ObjectId("5f78303a82f45e0013afebc1"),
title: "Test 4"}
]
如您所见,我必须使用其 ObjectID 查找数组“子产品”。 但是,如果我进行正常查找,我也会收到所有其他数组元素。
如何过滤结果以使结果仅是它匹配的子产品数组元素。 与内连接相同。
我的预期结果是:
{"_id" : ObjectId("5f748869487b4d0013ee50b4"),
"productId": ObjectId("5f9a96f85b909923e8530f0c"),
"subproductId" ObjectId("5e8b3684a82c2a00134e507a"),
"subproduct": {
_id:ObjectId("5e8b3684a82c2a00134e507a"),
title: "Test"
},
{"_id" : ObjectId("5f74870e487b4d0013ee50b3"),
"productId": ObjectId("5f7b4b17e8ec6a00158bb5d8"),
"subproductId" ObjectId("5f78303a82f45e0013afebc1"),
},
"subproduct": {
_id: ObjectId("5f78303a82f45e0013afebc1"),
title: "Test 4"
},
谢谢, 亚历克斯
【问题讨论】: