2016-09-15 23 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'應該是ruby中的字符串,這是錯誤的來源。謝謝! –

相關問題