Мне нужно запросить документы с помощью mongoDb, содержащие вложенные массивы. Я вижу много примеров, используя простой оператор $ in. Единственная проблема в том, что я строго должен проверять правильные подмножества.MongoDB Query Nested Array Search
Рассмотрите следующий документ.
{data: [[1,2,3], [4,5,6]]}
Запрос должен быть в состоянии получить документы со всеми [1,2,3], где 1,2,3 может быть в любом порядке, что исключает следующий запрос, поскольку он соответствует только в правильном порядке.
{data:{$elemMatch:{$all:[[1,2,3]]}}}
Я также попытался вложенные операторы $ elemMatch без успеха, потому что $ в операторе будет возвращать документ, даже если только один элемент соответствует, например, как в следующем.
{data:{$elemMatch:{$elemMatch:{$in:[1,4]}}}}
Пожалуйста, вернитесь назад и внимательно перечитать мой вопрос. Особенно, когда я прямо указываю: «Единственная проблема в том, что я строго должен проверять правильные подмножества». –
Хорошо для части «подмножества» вашего вопроса, посмотрели ли вы на «setIsSubset»? http://docs.mongodb.org/manual/reference/operator/aggregation/setIsSubset/ – snolan