演算子を使用し$expr
ます。
バージョン 3.6 で導入さ$expr
れ、同じドキュメントのフィールドを比較するクエリ式を作成できます。
1 つのドキュメントの 2 つのフィールドを比較する ( MongoDB Docsから直接取得した例):
次のドキュメントを含む monthBudget コレクションを考えてみましょう。
{ "_id" : 1, "category" : "food", "budget": 400, "spent": 450 }
{ "_id" : 2, "category" : "drinks", "budget": 100, "spent": 150 }
{ "_id" : 3, "category" : "clothes", "budget": 100, "spent": 50 }
{ "_id" : 4, "category" : "misc", "budget": 500, "spent": 300 }
{ "_id" : 5, "category" : "travel", "budget": 200, "spent": 650 }
次の操作は$expr
、支出額が予算を超えているドキュメントを検索するために使用します。
db.monthlyBudget.find( { $expr: { $gt: [ "$spent" , "$budget" ] } } )
この操作は次の結果を返します。
{ "_id" : 1, "category" : "food", "budget" : 400, "spent" : 450 }
{ "_id" : 2, "category" : "drinks", "budget" : 100, "spent" : 150 }
{ "_id" : 5, "category" : "travel", "budget" : 200, "spent" : 650 }