MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Vergleichen Sie zwischen 2 Feldern eines Dokuments in MongoDB

Sie finden zahlreiche Beispiele für die Verwendung des $where-Operators dafür kann das Aggregationsframework das für Sie erledigen ...

db.collection.aggregate([
    {
        "$addFields": {
            "isPayableAmountGreater": { "$cmp": [ "$payable_amount", "$paid_amount" ] }
        }
    },
    { "$match": { "isPayableAmountGreater": 1 } }
])

Oder noch einfacher und ohne den (wahrscheinlich unerwünschten) isPayableAmountGreater zu erstellen Quasi-Attribut:

db.collection.aggregate([
    {
        "$redact": {
            "$cond": [
                { "$gt": [ "$payable_amount", "$paid_amount" ] },
                "$$KEEP",
                "$$PRUNE"
            ]
        }
    }
])