sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man trunkerar ett tal till 3 decimaler

För avrundning med 3 decimaler kan du använda den här formeln.

$divide: [ {$trunc: { $multiply: [ "$$coordinate" , 1000 ] } }, 1000 ]

Till exempel med dina exempeldata och med denna aggregering:

db.getCollection('Test2').aggregate([
    { $project : 
        { 
            "location.type" : "$location.type",
            "location.coordinates" :  
            { 
                $map: 
                {
                    input: "$location.coordinates",
                    as: "coordinate",
                    in: { $divide: [ {$trunc: { $multiply: [ "$$coordinate" , 1000 ] } }, 1000 ] }
              }
            }   
        } 
    }
])

du kan få önskat resultat.

{
    "_id" : ObjectId("59f9a4c814167b414f6eb553"),
    "location" : {
        "type" : "Point",
        "coordinates" : [ 
            -74.005, 
            40.705
        ]
    }
}


  1. Redis med Resque och Rails:ERR-kommando tillåts inte när minne> 'maxmemory' används

  2. MongoDB, multipelräkning (med $exists)

  3. Bästa sättet att ansluta till MongoDB med Node.js

  4. Mongoose anropar till geoNear med GeoJSON-punkter eftersom frågeparametrar inte fungerar