sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB:Hur man får N decimals precision i en fråga

Du kan göra detta med $where operatör.

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

EDIT (efter denna kommentar )

I det här fallet bör du använda aggregeringsramverket, särskilt $redact operator och detta är mycket snabbare än lösningen med $where

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


  1. Felmeddelande:MongoError:dålig autentisering Misslyckades via URI-strängen

  2. MongoDB+Azure+Android:com.mongodb.WriteConcernException fel:inte huvudkod:10058

  3. MongoEngine Document Object som gjorts med from_json sparas inte

  4. TypeError:Kan inte använda operatorn 'in' för att söka efter '_id' i hane