我需要在 Mongodb 中将 double 转换为 Int32。我能够将值转换为 Int32 但不是所需的格式。我的文档如下所示。当我尝试将值 1.0 更改为 1 时,该值正在更改为Int32 中的 0,但我需要更改为 1 Int32。同样,我有多个文档,格式需要更改为 2.0 到 2,3.0 到 3。我不确定我的查询有什么问题任何帮助将不胜感激。
{
"_id" : ObjectId("62fb48824c03a80001c2b5a7"),
"Type" : {
"Value" : 1.0,
},
}
db.TestCollection.find(
{
'Type.Value':{$exists:true}
},
{
'value':"$Value"
}
).forEach(function(doc){
var data=value;
db.TestCollection.update(
{ _id:doc._id },
{
$set:{
'Type.Value':NumberInt(data)
}
}
)
})
您似乎正在尝试将 double 值转换为 MongoDB 中的整数。但是,该值未转换为所需的格式。您可以尝试以下查询将值转换为整数:
db.TestCollection.find(
{
'Type.Value':{$exists:true}
},
{
'value':"$Value"
}
).forEach(function(doc){
var data=value;
db.TestCollection.update(
{ _id:doc._id },
{
$set:{
'Type.Value':NumberInt(data)
}
}
)
})
在查询中,可以将
value
替换为Type.Value
,得到Type.Value
的值。您还可以将 NumberInt
替换为 Math.floor
以将值向下舍入到最接近的整数。