我在集合中有许多文档。每个文档都有houseNumber
参数和items
数组。
我需要找到一个正确的文档houseNumber
,然后通过sku
道具在 items 数组中找到正确的 obj 。这是我的表现:
StockLimitation.find({houseNumber: 2, 'items': {
$elemMatch : { sku: 'YO-FA-01256-00' }
}}, (err, data) => {
if (err) console.log(err)
console.log(data)
});
问题是整个 items 数组是从实际文档返回的,但我只需要一个匹配的对象。有解决方案吗?
更新
可能这里有一个解决方案:仅检索 MongoDB 集合中对象数组中的查询元素
但是它只返回数组元素,我想要带有其余文档参数的结果,例如houseNumber
和name
。怎么做?
示例显示:
db.test.aggregate([
{$match: {'houseNumber': '125'}},
{$project: {
shapes: {$filter: {
input: '$items',
as: 'item',
cond: {$eq: ['$$item.sku', 'XYZ']}
}},
_id: 0, //0 means do not show the field
houseNumber:1,
number:1
}}
])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句