如何在 mongodb 查询中将数据类型更改为 double 为 Int32

问题描述 投票:0回答:1

我需要在 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)
            }
            
            
        }
    )
})
mongodb mongodb-query
1个回答
0
投票

您似乎正在尝试将 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
以将值向下舍入到最接近的整数。

© www.soinside.com 2019 - 2024. All rights reserved.