如何通过多种条件在数组中只找到一个 obj 猫鼬

莱维特

我在集合中有许多文档。每个文档都有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 集合中对象数组中的查询元素

但是它只返回数组元素,我想要带有其余文档参数的结果,例如houseNumbername怎么做?

文档示例

格拉西亚诺

示例显示:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章