sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB:Jak získat přesnost N desetinných míst v dotazu

Můžete to udělat pomocí $where operátor.

db.collection.find({ "$where": function() { 
    return Math.round(this.amount.value * 100)/ 100 === 1.12; 
    }
})

UPRAVIT (po tomto komentáři )

V tomto případě byste měli použít agregační rámec, zejména $redact a to je mnohem rychlejší než řešení pomocí $where

db.collection.aggregate([
    { "$redact": { 
        "$cond": [
            { "$eq": [
                { "$subtract": [ 
                    "$amount.value", 
                    { "$mod": [ "$amount.value",  0.01 ] }
                ]}, 
                0.03
            ]}, 
            "$$KEEP", 
            "$$PRUNE"
        ]
     }}
])


  1. Závažná chyba:Třída 'Mongo' nebyla nalezena v C:\\Apache Software Foundation\Apache2.2\htdocs\sample\testdb.php

  2. 3 způsoby, jak vytvořit index v MongoDB

  3. Meteor:Unikátní MongoDB URL pro různé uživatele

  4. Mongodb Aggregation :Jak vrátit pouze odpovídající prvky pole