sql >> Database >  >> NoSQL >> MongoDB

Vergelijk tussen 2 velden van een document in MongoDB

U vindt tal van voorbeelden van het gebruik van de $where-operator hiervoor, maar het aggregatieraamwerk kan dit voor u doen ...

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

Of, nog eenvoudiger en zonder de (waarschijnlijk ongewenste) isPayableAmountGreater te maken quasi-kenmerk:

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



  1. docker-compose + django + redis - Fout 111 bij verbinding met 127.0.0.1:6379. Verbinding geweigerd

  2. Werkeenheid in mongodb en C#

  3. Meteor begrijpen Publiceren / abonneren

  4. alternatief voor het gebruik van 'wait' met lazy_static! macro roest?