MongoDB - Как найти массив, который содержит только указанное значение - PullRequest
1 голос
/ 10 января 2020

Предположим, у меня есть следующие документы

segments
{
  "name":"S1",
},
{
  "name":"S2",
},
{
  "name":"S3",
}

И пользователи

users
{
  "id":1234.
  "segments":["S1","S2","S3"]
}
{
  "id":1235.
  "segments":["S1"]
}
{
  "id":1237.
  "segments":["S2"]
}
{
  "id":1236.
  "segments":["S1","S2"]
}

Если я делаю users.find ({"сегменты": "S2"}), он приносит все документы с полем "S2" в нем.

То, что я ищу, это массив с ПРОСТО значением S2. Я ищу этот вывод:

{
  "id":1237.
  "segments":["S2"]
}

Потому что он имеет только S2, который я ищу

1 Ответ

1 голос
/ 10 января 2020

Вы можете использовать $elemMatch проекция

db.collection.find({
  segments: ["S2"]
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...