MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Сравнете между 2 полета на документ в MongoDB

Ще намерите много примери за използване на оператора $where за това, но рамката за агрегиране може да направи това вместо вас...

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

Или дори по-просто и без създаване на (вероятно нежелан) isPayableAmountGreater квази атрибут:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Играйте! 2 Framework - Добавяне на Java Mongo драйвер

  2. Заявка за намиране на всички документи с различни от нула милисекунди

  3. node.js:Mongodb db.collection.find() не работи, докато collection.insert работи

  4. Как да сортирате резултатите по дължина на низ в MongoDB

  5. DB-ref в mongoose без Schema.ObjectId?