通常の.find
$mod
を使用してクエリを実行します
演算子はここでは機能しませんが、それでも、集計フレームワークと $redact
演算子と$mod
算術集計演算子。
コレクションに次のドキュメントがあるとします。
{ "_id" : ObjectId("573f624b4c01ce47a183a632"), "a" : 4 },
{ "_id" : ObjectId("573f63494c01ce47a183a634"), "a" : 12 },
{ "_id" : ObjectId("573f63504c01ce47a183a635"), "a" : 6 },
{ "_id" : ObjectId("573f63504c01ce47a183a636"), "a" : 24 }
次のクエリは、60
であるすべてのドキュメントを返します。 フィールドa
の値を法として 0
に等しい 。
db.collection.aggregate([
{ "$redact": {
"$cond": [
{ "$eq": [ {"$mod": [ 60, "$a" ] }, 0 ] },
"$$KEEP",
"$$PRUNE"
]
}}
])
生成するもの:
{ "_id" : ObjectId("573f624b4c01ce47a183a632"), "a" : 4 }
{ "_id" : ObjectId("573f63494c01ce47a183a634"), "a" : 12 }
{ "_id" : ObjectId("573f63504c01ce47a183a635"), "a" : 6 }
もう1つのおそらく効率の悪い方法は、$where
オペレーター。
db.collection.find("60 % this.a === 0")