mongodb 如何只找到数组的一部分

林哲圭

我想在下面的数据中得到一个使用“find”函数返回的数组,该数组的内容如下。

{qty:15 warehouse:C},
{qty:20 warehouse:C},
{qty:25 warehouse:C}

我不想要“第一个元素”
我想返回一个 gty 大于 20 的数组。
我该怎么做?

接收mongodb返回的文档
一定要循环直接拉出来吗?
有没有办法通过查询来解决它?


{
    _id: ObjectId('60d0b364737d829c870b7571'),
    item: 'journal',
    instock: [
        {
            warehouse: 'A',
            qty: 5
        },
        {
            warehouse: 'C',
            qty: 15
        },
        {
            warehouse: 'C',
            qty: 20
        },
        {
            warehouse: 'C',
            qty: 25
        }
    ]
}
内纳德·米洛萨夫列维奇

您可以使用聚合管道:

  • $match 匹配您要查询的所有文档
  • $project 选择要返回的字段
  • $filterinstock按某种条件过滤数组
db.collection.aggregate([
  {
    "$match": {
      "_id": "id_1"
    }
  },
  {
    "$project": {
      "item": 1,
      "instock": {
        "$filter": {
          "input": "$instock",
          "cond": {
            "$gt": [
              "$$this.qty",
              20
            ]
          }
        }
      }
    }
  }
])

这是一个工作示例:https : //mongoplayground.net/p/-RPGEriBxui

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

删除数组mongodb的一部分

流星,MongoDB通过订阅获得数组的一部分

MongoDB项目数组元素的一部分

如何更新mongodb文档字符串的一部分?

我如何迭代从Mongodb返回的arrayList作为结果的一部分?

Mongodb-如何仅获取文档的一部分

如何使用Node.js在MongoDB中获取文档的一部分?

如何分离数组对象内某些值的一部分并从 AWS MongoDB 值映射到新数组?

mgo,mongodb:查找一个嵌入式文档,该文档是数组的一部分

mongodb匹配数组中的一项作为聚合管道的一部分

有没有办法在MongoDB中返回文档中数组的一部分?

如何在 MongoDB 中的 findOne 之後僅顯示數組的一部分?

mongodb objectid的一部分很可能是唯一的

在MongoDB中将$ addFields用作更新功能的一部分

MongoDB查找字段是较长字符串的一部分

MongoDB $ match不适用于子文档的一部分

只打印数组的一部分

Node.js,MongoDB-猫鼬-计算平均值作为GEO搜索的一部分

Mongodb:使用排序键作为复合索引的一部分还是在它自己的索引中?

如何引用数组的一部分?

如何加入数组的一部分

如何追加到数组的一部分?[[]]

如何基于数组的另一部分替换数组的一部分?

使用.split()方法,只获取创建的一部分字符串数组

在MongoDB的客户端pymongo中编写查询,该查询可将字符串的一部分即时转换为日期

是否可以在MongoDB地图功能中包含地图集合名称的名称作为键的一部分?

如何只编写一次childs的构造函数的一部分?

如何只提取一行的一部分?

无法找到如何仅使用索引路径号提取数组的一部分。(迅速)