Как я могу сделать $ и запросы к массиву в Mongo? - PullRequest
1 голос
/ 30 сентября 2011

У меня есть коллекция в Монго, где объекты выглядят следующим образом:

{ name:"Scott", bio:"Stumped", roles:["USR","ADM"] }

Возможно еще много ролей.Я хочу выполнить любую комбинацию запросов на пересечение, например, так:

db.coll.find({$and:[{roles:"USR"},{roles:{$ne:"ADM"}}]})

Некоторые запросы могут быть всеми ролями =, некоторые могут быть всеми ролями! =, А некоторые могут быть смешаны, как в примере вышеУ меня были определенные успехи с $ или и $ nor, но абсолютно ни один запрос, который я могу понять, не работает с $ и.Я даже пытался использовать $ where и $ elemMatch, чтобы подражать тому, что я хочу.Я также действительно пытаюсь избежать нескольких запросов с пересечением обработки приложения.Идеи?

Ответы [ 2 ]

2 голосов
/ 01 октября 2011

Нашел ответ:

db.coll.find( {roles : { $all : ["USR"], $nin : ["ADM"]}} )

Спасибо, Хоххи, за то, что повел меня по правильному пути!

1 голос
/ 30 сентября 2011
db.coll.find("roles":{$all:["USR","ADM"]}})

Я думаю, что это поможет вам, по крайней мере, возвращает результат, который вы ищете

...