我正在与mongodb、mongoose、mongoose double和一些有关创建数据的查找查询进行斗争。
环境:
我使用的是https://www.npmjs.com/package/mongoose-double,因为我实际上使用的是猫鼬4.13.x,新的@mongoosejs/double版本需要猫鼬5.x。
在将一些数据插入到MongoDB模式(使用嵌入式文档(但我不认为这是问题所在)之后,使用mongoose double dataType,就无法通过简单的查询找到相关数据。
嵌入式模式如下所示:
const mongoose = require("mongoose");
require('mongoose-double')(mongoose);
const barsSchema = new mongoose.Schema({
val: mongoose.Schema.Types.Double
}周围文件:
const mongoose = require("mongoose");
require('mongoose-double')(mongoose);
const foosSchema = new mongoose.Schema({
bars: [barsSchema]
}在通过猫鼬插入一些指数值为: 2.86530674849058e+161的数据之后
数据库看起来像:
{
"_id" : ObjectId("5b9f86c53db736eec3cdba00"),
"bars" : [
{
"val" : 2.86530674849058e+161
},
{
"val" : 2.86530674849058e+161
},
{
"val" : 3.86530674849058e+161
}
]
}所有的“瓦尔”都是双重的..。我通过RoboMongo查看了收藏品。
但是当做一个简单的:
db.getCollection('foo').find({
'bars.val': 2.86530674849058e+161
})什么也找不到。
如果我通过RoboMongo打开文档,然后单击编辑-> 保存(没有真正改变什么),查询就会工作,文档就会找到。
集合foo和文档看起来是一样的-并且var字段仍然是类型为double.我很困惑..。
对于如何获得更多关于这种行为的细节,有什么想法吗?
事先谢谢拉尔夫
发布于 2018-09-18 18:36:12
就像无边的尖..。罗博蒙戈对我的数据做了一些小的“调整”.使用robomongo显示的数据进行搜索直到将此“错误”显示数据保存到mongodb之后才能成功运行。
我在mongodb上打开了一些查询日志记录。
db.setProfilingLevel(2)
db.system.profile.find().pretty()以检查保存的内容和查询的外观。这给了我最后的暗示。
帮我解决了-谢谢!
https://stackoverflow.com/questions/52366356
复制相似问题