$all не работает с массивом

Я пытаюсь получить все submissions документы, которые содержат все tags перечислены в массиве.

Мой текущий код выглядит так:

submissions.find({ tags: { $all => tags } })
print tags.count

Однако при запуске я получаю следующую ошибку во второй строке:

BSON::InvalidKey at /
NilClass instances are not allowed as keys in a BSON document.

Также следует отметить, что следующее работает как надо (хотя и не достигает желаемого результата):

submissions.find({ tags: tags })
print tags.count

Как исправить исходный код, чтобы правильно найти нужные документы?

1 ответ

Решение

Выражение $all в MongoDB:

submissions.find({ tags: { $all: tags }});

В этом случае "теги" должны быть массивом (tags = ['tag1','tag2','tag3'])

Почему вы использовали "$all => tags" вместо "$all: tags"?

Другие вопросы по тегам