sql >> Database >  >> NoSQL >> MongoDB

MongoDB:N-decimaal precisie in een query krijgen

U kunt dit doen met de $where telefoniste.

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

EDIT (na deze opmerking )

In dit geval moet u het aggregatieraamwerk gebruiken, met name de $redact operator en dit is veel sneller dan de oplossing met $where

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


  1. Zoek documenten in MongoDB waarvan met een arrayveld een subset is van een queryarray

  2. Kan ik twee kolommen uniek voor elkaar maken? of samengestelde primaire sleutels in redis gebruiken?

  3. Mongorestore in een Docker-bestand

  4. SCUMM:de op agenten gebaseerde databasebewakingsinfrastructuur in ClusterControl