更新int数组会在Mongo-shell中转换为双数组
Updating int array gets converted to double array in Mongo shell
我有一个int数组要使用mongoshell在集合中更新。当我更新它时,它实际上以双重格式存储。
var array =[1,2,3]; // int array as all elements are int
// Update query where path is the collection field
db.doc.update({},{$set : {“path”:array}},{ upsert: true });
实际上它存储了:
{
"_id" : ObjectId("529ae0e70971d81eedf5cb3d"),
"path" : [1.0, 2.0, 3.0]
}
我是mongo的新手,必须在mongoshell中运行更新查询。如何避免自动双重转换。
Mongoshell默认情况下将数字视为浮点值。所以,如果你想把它们当作其他东西来对待,就明确地告诉mongo。对于您的情况,您必须使用NumberInt()。
所以var array = [NumberInt("1"), NumberInt("2"), NumberInt("3")];
附言:你可能会发现我的另一个答案(类似)也很有用。
相关文章:
- 使用JS将数组转换为json对象
- 本地存储中的字符串到字节数组转换
- Javascript函数,用于将数组转换为“;2-元组”;
- php数组转换为javascript
- 在Javascript中将一个值和字符串数组转换为if语句
- 将数组转换为javascript格式的字符串
- 如何将数组转换为有效的json
- JSON数组转换为JS对象数组
- 如何将数组转换为映射
- JavaScript:将字符串数组转换为文本区域
- javascript |数组转换
- 数组转换为多个字符串
- Javascript将数组转换为字符串并使其反向输出
- 将Byte数组转换为Angularjs中的Base64字符串
- 将对象数组转换为与nodejs/pg/unnest兼容的数组
- 将Javascript数组转换为PHP数组
- 将数组转换为键值对
- 使用Ramda将对象数组转换为普通对象
- javascript将对象数组转换为字符串以存储在s3中
- 使用.join方法将数组转换为不带逗号的字符串