$ all不使用数组

时间:2016-09-15 01:40:54

标签: mongodb bson mongodb-ruby

我正在尝试获取包含数组中列出的所有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 个答案:

答案 0 :(得分:1)

MongoDB中的$ all表达式是:

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

在这种情况下,"标签"必须是一个数组(tags = ['tag1','tag2','tag3']

为什么使用" $ all =>标记"相反" $ all:tags" ?