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