首页 > 解决方案 > 获取最后一个文档并过滤嵌套数组

问题描述

第一次玩 MongoDB(和 pymongo),我有以下文档。
我正在尝试进行以下查询:

  1. 获取前 1 个条目,按time_added降序排列
  2. 从该文档子集(我们称之为entries.stocks)中,获取价格小于某个balance值的股票
  3. 按该顺序按数量和价格排序。

从我用谷歌搜索的内容来看,这似乎可以通过聚合来完成,但我只设法完成了第一步:
db.entries.find().sort('date_added', -1).limit(1)

文件:

[
  {
    "_id": {
      "$oid": "5fcd2582a7a12288df9a6bf3"
    },
    "stocks": [
      {
        "name": "stock_name",
        "volume": 73,
        "price": 135
      },
      {
        "name": "stock_name",
        "volume": 44,
        "price": 324
      }
    ],
    "date_added": {
      "$date": "2020-12-06T18:40:02.000Z"
    }
  },
  {
    "_id": {
      "$oid": "5fcd2582a7a12288df9a6ad0"
    },
    "stocks": [
      {
        "name": "stock_name",
        "volume": 342,
        "price": 43
      },
      {
        "name": "stock_name",
        "volume": 544,
        "price": 66
      }
    ],
    "date_added": {
      "$date": "2020-12-05T18:40:02.000Z"
    }
  }
]

标签: mongodbpymongomongodb-compass

解决方案


推荐阅读