$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"?