MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB:Jak uzyskać precyzję N dziesiętnych w zapytaniu?

Możesz to zrobić za pomocą $where operatora.

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

EDYCJA (po tym komentarzu )

W takim przypadku powinieneś użyć struktury agregacji, zwłaszcza $redaguj operatora i jest to znacznie szybsze niż rozwiązanie wykorzystujące $where

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Upsert Array Elements pasujące do kryteriów w dokumencie MongoDB?

  2. Zwracanie elementów tablicy wewnętrznej z wielu dokumentów w posortowanej formie

  3. Jak uzyskać rozmiar w bajtach dokumentów bson

  4. Jak dodać porządekza pomocą @query w repozytorium mongodb

  5. Mongo db agregacja wielu warunków