sql >> Databasteknik >  >> NoSQL >> MongoDB

Jämför mellan två fält i ett dokument i MongoDB

Du hittar massor av exempel på hur du använder $where-operatören för detta men aggregeringsramverket kan göra detta åt dig ...

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

Eller ännu enklare och utan att skapa den (förmodligen oönskade) isPayableAmountGreater kvasiattribut:

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



  1. Ändra åtkomst från MS Excel?

  2. Redis Client List syfte och beskrivning

  3. Gå igenom Mongo Collection och uppdatera ett fält i varje dokument

  4. MongoDB och Google Cloud Functions VPC Peering?