草庐IT

Double-precision_floating-point_f

全部标签

mongodb - 为什么整数(Number)在MongoDb中保存为Double

我正在做一个新项目,我想弄清楚为什么当Mongoose保存我的模型时,我得到的不是整数,而是double。例。{myId:12345678}变成{myId:12345678.0}我的模式包含这个:{myId:{type:Number}}Mongoose版本:5.x节点:10.x有什么想法吗? 最佳答案 Number模式类型是float。如果要将数字存储为整数,可以使用mongoose-int32插件:varInt32=require('mongoose-int32');constschema=newmongoose.Schema({

mongodb - float 在聚合中不匹配

我有这个示例测试集合文档:/*1*/{"_id":1.0,"value":10.7}/*2*/{"_id":2.0,"value":10.8}/*3*/{"_id":3.0,"value":10.7}因此,当我在聚合管道中使用$addFields以使用查询在文档中添加新的“结果”字段时:db.test.aggregate([{$addFields:{result:{$add:["$value",.10]}}}]);结果如下:/*1*/{"_id":1.0,"value":10.7,"result":10.8}/*2*/{"_id":2.0,"value":10.8,"result":1

python - PyMongo 返回 float 而不是整数

我在Mongo中有一个存储URL的集合,为此我使用以下字段:协议(protocol)(类型:字符串)-例如:https主机(类型:字符串)-例如:google.com端口(类型:整数)-例如:80在mongo客户端我执行db.myCollection.find()它返回{"protocol":"https","host":"google.com","port":80}在带有PyMongo的Python中我执行forserviceinmyCollection.find():printservice['port']它返回80.0我的号码是以整数形式存储的吗?使用PyMongo,如何将其返回

Java中如何将double转换为int?

Java中如何将double转换为int?在Java编程中,我们经常需要将一个浮点数(double类型)转换为整数(int类型)。这可以通过使用强制类型转换或Math类中的方法来实现。下面将介绍两种方法的具体实现。强制类型转换:强制类型转换是将一种数据类型转换为另一种数据类型的一种方式。要将double类型转换为int类型,可以使用(int)操作符。doublenum=10.5;intconvertedNum=(int)num;System.out.println("ConvertedNumber:

mongodb - Mongoose 将 Number 作为 Int32 或 double 插入,如何强制始终使用 double,就像 shell 一样

当字段是Number类型时,mongoose会根据实际值将其插入为Int32或double:5->Int325.3->双实际上,同一字段根据插入的实体具有不同的类型。这不是从javascript读取/写入的问题,因为两者都已转换为数字。但是,如果您同时使用来自两种类型的强类型语言(如C#)的驱动程序,这就会成为一个问题。是否可以将mongoose配置为始终插入数字,就像mongoshell那样? 最佳答案 使用mongoose-double为此输入。 关于mongodb-Mongoose

node.js - Node JS/mongodb : Do I need to close db connection at some point?

我读了this关于mongodb/nodejs连接池的文章。他在那里打开了一次连接,然后就这样离开了。这就是我在app.js文件中设置数据库连接的方式:mongodb.MongoClient.connect(MONGODB_URI,function(error,database){if(error)throwerror;db=database;//dbisdefinedoutsidethiscallbackcoll=db.collection('testData');//collisdefinedoutsidethiscallback});只要服务器正在运行,数据库连接就会保持打开状态

聚合管道期间的 MongoDB String 到 Double 转换

在我的文档中,十进制值存储为String(因为我在Java中将BigDecimal转换为String)。当我一次查看一个文档时,这是完全可以的并且是必需的。但是,我要求在聚合期间将它们视为Double(例如,$sum)。有没有一种方法可以让我在聚合管道期间的$project操作(或其他方式)期间将String转换为Double。这样我的后续管道将在Double字段上执行$sum。我不考虑将它们存储为Double的选项,因为我需要保留每个文档的精度,但如果在聚合操作期间精度丢失,我可以接受。 最佳答案 您可以使用$toDouble,本

mongodb - Grails Mongo GORM 插件 - float 和字节的映射是字符串而不是数字

当使用GrailsMongoDBGORM插件时,我意识到Integers被正确映射到mongonumbers,Long被映射到NumberLong,等等。唯一没有正确映射的类型是Byte和Float。它们被映射到字符串。我希望是mongo数字。我是否需要按照此处所述编写自定义编码器:http://springsource.github.io/grails-data-mapping/mongo/manual/guide/3.%20Mapping%20Domain%20Classes%20to%20Mongo%20Collections.html#3.6%20Custom%20User%2

MongoDB/PyMongo 地理空间查询 : distance of documents from a point

我最近将我的MongoDB从2.2.1版升级到2.4.6版,并将pymongo升级到2.6.2版。升级的原因之一是新版本的MongoDB能够计算和返回文档(包括适当的坐标)与地理空间查询中心的距离asexplainedhere.到目前为止,我执行了以下查询:db.collection.find({"loc":{"$within":{"$center":[[LON,LAT],RADIUS]}}})其中LON、LAT和Radius是适当的数字。然后,我以编程方式计算返回的每个文档与中心的距离。现在我正尝试让MongoDB代我进行距离计算,因为与我的代码相比效率更高。我现在正在尝试的是:db

node.js - mongodb 聚合 $sum 返回额外的 float 字

我希望通过我的nodejs服务器上的SKU对一些库存商品的价格求和。它们是float。我的文件看起来像这样[{quantity:1,price:38.95,sku:'C-2177',product:55b9cfc5fa39110bb644becc,_id:56739191b98d1fde79c3034e},{quantity:1,price:24.95,sku:'C-2188',product:55b9d013fa39110bb645100d,_id:5743870e139e80b9ecb48e02}]我的所有价格都在我的架构中定义为数字。当我像这样尝试$group$sum运算符时:I