使用复杂值等$not
操作的正确方法是什么?$ne
我的意思是值,它们也是通过一些操作计算出来的。我试过{$not: {$and: [{field1: 'a'}, {field2: 'b'}]}}
and {$not: [{$and: [{field1: 'a'}, {field2: 'b'}]}]}
,但它们似乎都不能正常工作。与$ne
:相同{$ne: [field1, field2]}
。文档将它们的用法示例显示为field1: {$not: {$gt: 5}}
,对于如此简单的情况很好,但是如何处理更复杂的情况呢?
如果它有所作为,我想在$match
聚合框架的子句中使用它们,而不仅仅是在find()
.
升级版:
例如,我想运行这样的查询:db.test.aggregate({$match: {$not: {$and: [{f1: 'a'}, {f2: 'b'}]}}})
,但它给出错误“无效运算符:$and”(相同的代码没有$not
工作)。要在之前测试该查询插入文档:db.test.insert({f1:'a', f2:'b'}); db.test.insert({f1:'b', f2:'c'})
.