【发布时间】:2018-09-07 03:41:19
【问题描述】:
我在集合中有许多文档。每个文档都有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)
});
问题是整个项目数组是从实际文档返回的,但我只需要一个匹配的对象。有解决办法吗?
更新
可能这里有一个解决方案:Retrieve only the queried element in an object array in MongoDB collection
但是它只返回数组元素,我想要带有其他文档参数的结果,例如houseNumber 和name。怎么做?
【问题讨论】:
-
试试这个
{houseNumber: 2, 'items.sku': 'YO-FA-01256-00'}作为查询。 -
还是不行....
-
感谢您的链接,但根据该解决方案,它返回只有数组元素,没有其余文档参数。如何在结果中得到
name和houseNumber??
标签: javascript database mongodb mongoose