mongodb - 如何将值设置为 Double 类型使用 updateOne 运算符?
问题描述
猫鼬模式:
const Double = require('@mongoosejs/double');
const Test = new mongoose.Schema({
array: [{
object: {
value: Double
}
}]
});
更新查询:
Test.updateOne({ name: 'abc' }, {
$set: {
array: [{ value: 1000 }]
}
})
实际:值为 Int32
期望:值为 Double
当我使用保存新数据时,它是双倍的。但是更新使用 $set,它是 Int32
解决方案
如果我们定义数组 like array:[value:{type:Double}]
,而像 mongoose 一样保存整数1 , 2 ...
会覆盖数据类型并将数据类型保存为 int32 而不是预期的,因为很明显它的数据类型是 int 作为 double 处理浮点数。
如果您只想要一个值数组(而不是对象),那么您可以试试这个:
架构:
const Double = require("@mongoosejs/double");
const TestSchema = new mongoose.Schema({
name: { type: String },
array: [Double],
});
询问 :
let val = 5;
await Test.updateOne(
{ name: "abc" },
{
$push: {
array: val,
},
}
);
结果 :
推荐阅读
- python - 有什么方法可以像 re.findIter() 这样从 bs4 findAll() 获取迭代器?
- node.js - 通过 TypeORM 中的原始查询进行批量更新
- php - 如何在 mysql 的 where 条件下使用 in_array() 函数?
- c# - 将整数字符串转换为 ASCII 字符
- php - 单击后如何停用按钮
- sensors - 用一台 PLC 连接多个传感器
- c - 计算每个单词在给定句子中出现的次数
- firebase - 为什么我的服务帐号无法远程访问 Google Cloud Firestore?
- json - 带有伪行的 json_agg()
- python - 如何独立于散点图的 fill_alpha 设置 Bokeh 中图例颜色的透明度?