如何获取MongoDB查询的反向结果



我有一个查询,

SomeCollection.collection.find(:$or => [{tags:'cool'},{tags:'awesome'},{tags:'neat'},...])

我想修改相反的集合。所以所有的元素除了在前面的语句中找到的元素。在这个例子中,我想要所有不是tags:'cool' || tags:'awesome' || tags:'neat' || ...的结果。

我尝试了SomeCollection.collection.find(:$not => {:$or => [{tags:'cool'},{tags:'awesome'},{tags:'neat'},...]}),它给出了语法错误。我也在考虑SomeCollection.collection.find(:$and => [{tags:{:$ne => 'cool'}}, {tags:{:$ne => 'awesome'}}, {tags:{:$ne => 'neat'}}]),它是显式的逆,给了我正确的答案。有没有一种简便的方法来得到逆集合?

您可以在查询中使用$ne

SomeCollection.collection.find($or : [ {tags: {$ne:'cool}}, ..]

由于您比较的是同一字段的值,因此可以使用偶数$nin。查询现在看起来像这样,

SomeCollection.collection.find($or : [ {tags : {$nin : ['cool','awesome',..]} .. ]

相关内容

  • 没有找到相关文章

最新更新