sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB:Sådan får du N decimals præcision i en forespørgsel

Du kan gøre dette med $where operatør.

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

EDIT (efter denne kommentar )

I dette tilfælde bør du bruge aggregeringsrammen, især $redact operator, og dette er meget hurtigere end løsningen med $where

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


  1. Redis klynge/belastningsbalancering

  2. Redis flere abonnenter

  3. Mongoose-opdateringMange med forskellige værdier ved unikt id som e-mail uden loop

  4. MongoDB beregner score fra eksisterende felter og sætter det i et nyt felt i samme samling