4

ブール演算を使用した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 が 1 つあるため、この$ne演算子を使用することにしました。しかし、私はそれを行う適切な方法を理解できないようです! 正しい位置に配置していないか (演算子の後、$match演算子の前に配置したい$group)、または構文が間違っているかどうかはわかりませんが、助けていただければ幸いです。

私がこれまでに試したこと(すべての後の独自のステップで$match)は次のとおりです。

{'$quxx': {'$ne': 'rogue'}}
{'quxx': {'$ne': 'rogue'}}
{'$ne': {'quxx': 'rogue'}}
{'$ne': {'$quxx': 'rogue'}}

それらのすべてが私に与えますunrecognized pipeline op

4

1 に答える 1

16

それを独自の$matchパイプライン要素に入れるか、単にイニシャルに含めます$match

したがって、次のいずれかを追加します。

{'$match': {'quxx': {'$ne': 'rogue'}}}

またはイニシャル$matchを次のように変更します。

{'$match': {'foo': 3, 'bar': 'baz', 'quxx': {'$ne': 'rogue'}}}
于 2013-03-11T03:22:06.720 に答える