2
我似乎无法在布尔操作上找到任何有关Mongo聚合的资源。我的查询看起来是这样的(我用的是pymongo司机):
db.collection.aggregate([{'$match': {'foo': 3, 'bar': 'baz'}},
{'$project': {'quxx': 1, '_id': 0, 'count': 1}},
{'$group': {'total': {'$sum': '$count'}, '_id': '$quxx'}},
{'$sort': {'total': -1}},
{'$limit': 2000}])
,所有的伟大工程($match
是在索引等)。现在,有一个流氓quxx,我想过滤掉管道,所以我认为我会使用$ne
运算符。但是,我似乎无法找出正确的方法来做到这一点!我不确定是否我没有把它放在正确的位置(我希望它在$match
运营商之后,但在$group
运营商之前)或者我的语法错误,但将不胜感激。
至今(全部$match
后自己的步骤)我已经试过的事情是:
{'$quxx': {'$ne': 'rogue'}}
{'quxx': {'$ne': 'rogue'}}
{'$ne': {'quxx': 'rogue'}}
{'$ne': {'$quxx': 'rogue'}}
他们的每一个一个给我unrecognized pipeline op
。
初始匹配遍历一个综合指数,我不希望在quxx指数。这是否意味着我应该与前者一起? – dreamriver 2013-03-11 03:23:36
@dreamriver使用'explain'在相同的'find'上检查修改后的初始匹配,看看你现有的索引是否仍然被使用(我预计它会是)。 – JohnnyHK 2013-03-11 03:25:01