О массиве запросов объектов в мангусте - PullRequest
0 голосов
/ 07 марта 2020

Тест в mongoplayground

https://mongoplayground.net/p/c3UBL9JwX5u

ожидаем

{
  _id: "5df1e6f75de2b22f8e6c30e8",
  t: [
    { name: "d1", tt: false },
    { name: "d2", tt: true } 
  ]
}

Это мой запрос

db.coll.find({
  "t": {
    $ne: {
      "name": {
        $regex: "d1",
        $options: "g"
      },
      "tt": true
    }
  }
})

Я получил неправильный ответ, так как получить желаемый результат? Спасибо!

  1. t.name включает 'd1' и t.tt! = True
  2. t.name не включает 'd1'

Я хочу получил результат 1 or 2.

1 Ответ

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

https://mongoplayground.net/p/CnGnSmRzXCB

db.coll.find({
  $or: [
    {
      "t": {
        $elemMatch: {
          name: {
            "$regex": "^d1$|d1"
          },
          tt: false
        }
      }
    },
    {
      "t": {
        $not: {
          $elemMatch: {
            name: {
              $regex: "d1"
            },

          }
        }
      }
    }
  ]
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...