更新int数组在Mongo shell中转换为double数组

 堵晴__晨1997_361 发布于 2023-02-13 16:25

我有int数组使用mongo shell更新集合.当我更新它实际上它以双格式存储.

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的新手,必须在mongo shell中运行更新查询.如何避免自动双转换.

1 个回答
  • Mongoshell默认将数字视为浮点数.因此,如果您希望将它们视为其他内容,请明确告诉mongo.对于您的情况,您必须使用NumberInt().

    所以 var array = [NumberInt("1"), NumberInt("2"), NumberInt("3")];

    PS你可能会发现我的另一个答案(类似的)也很有帮助.

    2023-02-13 16:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有