2013-08-28 32 views
1

我在Ruby中使用MongoDB驅動器進行查詢,其中$elements是我的光標。我想說的是,x的值可以是1,2和3之外的任何值。

這是我試過的。

$elements.find({ "x" => {"$and" => {"$ne" => 1, "$ne" => 2, "$ne" => 3}} }).to_a 

但是$and顯然不是一個有效的操作符。所以然後我嘗試了這個。

$elements.find({ "x" => {"$ne" => {"$or" => [1, 2, 3]}} }).to_a 

但是,只是讓所有元素x = 1反正。

如何完成我想要的功能?另外,我可以通過鏈接找到一個教程或一些文檔,以便下次我可以幫助自己。

+0

'$和'是pefectly有效且確實存在,你可能運行一個老MongoDB是它說,這是不,雖然它不是那樣有效 – Sammaye

+0

是的,錯誤信息有點含糊不清,但是應該指出,我應該在發佈之前始終運行'sudo gem update'。 – Seanny123

回答

1

我想這是你想要的

$elements.find({ "x" => {"$nin" => [1, 2, 3]} }).to_a 

關於文檔... http://docs.mongodb.org/manual/reference/operator/

+0

我的錯誤在於沒有諮詢MongoDB文檔,因爲它們不是Ruby特定的。下次我會記住,將$ nin:[1,2,3]'轉換爲'「$ nin」=> [1,2,3]'不需要太多努力。 – Seanny123