MongoDB конвертирует из int32, чтобы удвоить себя
У меня странная проблема, когда я запускаю оболочку для mongoDB. Моя структура коллекции похожа на приведенную ниже в mongoDB. Тип элементов ServiceList должен быть целочисленным.
{
"_id" : ObjectId("56565"),
"Contact" : "",
"Email" : "",
"AppList" : [
{
"Code" : "",
"Usage" : NumberInt(542),
"LicenceType" : "Monthly",
"CreatedDate" : ISODate("2015-07-29T06:15:20.520+0300"),
"ServiceList" : [
1,5,8
]
}
]
}
Моя цель запустить этот код - преобразование типа использования из int32 в int64. Это работает нормально. Когда я запускаю код ниже. что-то странное происходит, и тип предметов внутри AppList.ServiceList
преобразуется в double
от int32
сам.
db.CustomerInfo.find({}).forEach( function (item) {
if(item.AppList != undefined){
item.AppList.forEach(function (x){
x.Usage = NumberLong(x.Usage);
});
db.CustomerInfo.save(item);
}
});
и, кажется, вот так,
{
"_id" : ObjectId("56565"),
"Contact" : "",
"Email" : "",
"AppList" : [
{
"Code" : "",
"Usage" : NumberLong(542),
"LicenceType" : "Monthly",
"CreatedDate" : ISODate("2015-07-29T06:15:20.520+0300"),
"ServiceList" : [
1.0,5.0,8.0
]
}
]
}
Как я могу решить эту проблему?
Версия MongoDB:3.4.9 Версия MongoShell:v3.4.9