Как использовать $ в запросе в mongodb? - PullRequest
0 голосов
/ 17 сентября 2018

Я хочу получить записи, когда разрешение = Пользователь.

Ниже представлены мои коллекции:

"_id":ObjectId("59177f050c9db20629f4562"),
"profile":
{
    "permissionGroups" : [
      "Admin",
      "Restaurant",
      "Salesperson",
      "User"
    ]
}

Выборка только в разрешении пользователя.

Заранее спасибо,

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Ну, во-первых, получите доступ к массиву allowGroups внутри профиля obj, а затем выполните запрос, просто сопоставив строку, подобную этой.Вам не нужно запускать $ in, если у вас нет нескольких строк в массиве, чтобы соответствовать:

db.getCollection('collection name').find({"profile.permissionGroups" : "User"})
0 голосов
/ 17 сентября 2018

Я не думаю, что $in - это то, что вы ищете. $in запрашивает массив по полю, поэтому предположим, что вы ищете permissionsGroup: {$in: ['User', 'Admin']}, и это вернет все записи, которые могут найти либо User, либо Admin.

В этом случае вы можете просто выполнить поиск permissionsGroups: 'User'. Mongo достаточно умен, чтобы распознавать permissionGroups как массив и проверять заданное значение с полями в этом массиве.

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