$ или со свойствами указанного элемента массива c в документе - PullRequest
0 голосов
/ 31 марта 2020
{
  "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, и я хочу найти пользователя по значению status или по полю DELETE. Но мой код не работает.

1 Ответ

0 голосов
/ 31 марта 2020

Использование $ elemMatch

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