首页 > 解决方案 > $或文档中数组的特定元素的属性

问题描述

{
  "deviceId": "A",
  "users": [
    {
      "id": 1,
      "status": "ac",
      "DELETE": true
    },
    {
      "id": 2,
      "status": "ac"
    },
    {
      "id": 3,
      "status": "ac"
    },
    {
      "id": 4,
      "status": "ac"
    },
    {
      "id": 5,
      "status": "deac"
    },
    {
      "id": 6,
      "status": "ac"
    }
  ]
}

我有一个像 top 这样的文档,我想通过状态值或 DELETE 字段存在状态来搜索用户。但我的代码不起作用。

标签: mongodbflask-pymongo

解决方案


使用$elemMatch

db.test.findOne({
  "deviceId": "A",
  "users": {
    "$elemMatch": {
      "id": 1,
      "$or": [
        {
          "DELETE": {
            $exists: true
          }
        },
        {
          "status": "deac"
        }
      ]
    }
  }
})

推荐阅读