2016-09-15 8 views
0

Я пытаюсь получить все документы 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

Выражение всего $ в MongoDB является:

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

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

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

+0

Сначала я пытался это сделать, но это дало мне синтаксическую ошибку, поэтому я изменил ее. После того, как вы указали это, я понял, что «$ all» должен был быть строкой в ​​рубине, которая была источником ошибки. Благодаря! –