当前位置: 首页 > news >正文

黑龙江专业网站建设网站方案制作的培训

黑龙江专业网站建设,网站方案制作的培训,搜索技巧的网站,商检报关网站建设开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

4bd7a27ab203794ff1b32c0591b314ef.png

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共600人左右 1 + 2)。

MONGODB 在使用中,出现的问题比较少,不少开发者本身并不注意,大多数对于MONGODB 的数据类型的认知并不多,而我们在mongodb的运营中发现开发基本上就是在使用string 类型的方式。

String 类型

这是开发大多数最常用的格式,与JAVA 里面的数据类型一样,STRING 类型。这里MONGODB 的数据存储中使用BSON 通过UTF-8 来进行存储。

在这里有一些在MONGODB中的设计者,认为既然MOGNODB可以在键值方面每个document 的key value 都是自由的,那么如果我一个collection中的一部分是 string 类型,一部分是其他的类型,我们怎么来区别。实际上我们遇到了这样的问题。

fa4fe558acc81f439bbd68f4a05df647.png


db.test.find({"name":{$type:"string"}})

178a927ba626a66abf58bd3022babf87.png


这样我们就可以查出,当前test collection中的所有name 是string类型的documents. 比如我们查询 string 里面的null

242d917cc740889da5d1b4d5c1601d35.png

那么除了这些以外,还有开发经常忽略的一些数值类型,如 int  , long 两种类型,而这两种的类型是有范围的,这里两种的类型会进行自动的切换,如果你的值超过int 会进入到 long 的类型中进行存储。

int| -2,147,483,648 to 2,147,483,647|  0 to 4,294,967,295             |
long| -9,223,372,036,854,775,808 to  |  0 to 18,446,744,073,709,551,615
9,223,372,036,854,775,807
插入相关的数据

db.test.insertOne({age: -2147483648})

db.test.insertOne({age: -9223372036854775808})

db.test.insertOne({age: 4294967295 })

db.test.insertOne({age: 18446744073709551615})

db.test.insertOne({age: 28446744073709551615})

实际上我按照上面的范围进行插入数据,则这些数据的类型是double 而不是我们范围中的 INT LONG 等

6586f7adb58a7bc8d93e5b966f5f7179.png

写到这里问题就来了,我想使用INT 类型在MONGODB 中表达数据,怎么办,因为我们在怎么使用这个部分,结果都是DOUBLE

这就要求我们在写入数据的情况下,指定你的数据类型,如INT

eaa1fedf9a62ad3899e6f810d1df2928.png

> db.test.find({"age": {$type: "int"}})

{ "_id" : ObjectId("63c674c2d0c9b3cc56fc047b"), "age" : 18 }

>  

> db.test.insertOne({age: NumberInt("19.03")})

{

"acknowledged" : true,

"insertedId" : ObjectId("63c67638d0c9b3cc56fc047c")

}

> db.test.find({"age": {$type: "int"}})

{ "_id" : ObjectId("63c674c2d0c9b3cc56fc047b"), "age" : 18 }

{ "_id" : ObjectId("63c67638d0c9b3cc56fc047c"), "age" : 19 }

如果你固定了使用的具体的数据类型,你输入的数据与类型不匹配,将被修改为你设定的类型。但是如果你超过你指定的数据类型的范围,那么输入的数据将变得是错误的数据,这点需要使用者注意。

236ba91061317104d2e696d4e27f64e4.png

> db.test.insertOne({age: NumberLong("10294967295")})

{

"acknowledged" : true,

"insertedId" : ObjectId("63c67775d0c9b3cc56fc0480")

}

> db.test.find({"age": {$type: "long"}})

{"_id":ObjectId("63c67766d0c9b3cc56fc047f"),"age":NumberLong("6294967295") }

{"_id":ObjectId("63c67775d0c9b3cc56fc0480"),"age":NumberLong("10294967295") }

3e68aa6fda3e4f13da600deab4c03a41.png

所以官方文档说明的数据部分,可能你在理解上如果出现问题,会导致你的输入的数据的类型和你希望的类型是不一致,甚至你认为数据库可以进行维度的转换也是错误的。

这里就会出现一个核心的问题,你发现的mongodb 的collection 几经了不同的开发人员,一部分数据是 STRING 一部分是INT ,那么你该怎么办。

>  db.test.update({}, [ {$set:{ "age" : {$toDouble: "$age"}}} ], {multi:true})

WriteResult({ "nMatched" : 17, "nUpserted" : 0, "nModified" : 9 })

def3b5f67380f562e9e1b1428f2e63d6.png

1e2d9d8febbd29b3354c139baf8ea6a4.png

但是如果是想转换成INT 则会报错,原因还是转换的值超过了INT的范围16436c54dd69219e71facbe8de9a0b6d.png

这里有一个问题,关于MONGODB ,到底MOGNODB 是都使用STRING 类型好,还是应该使用MONGODB 自有的数据类型。可以去下面的连接来看看一些回答。

而MONGODB 的数据类型应该怎么用,这仅仅是一个开端,更深入的数据类型的研究还应该继续。

01eac15aa680cd71301750fd0902671b.png

http://www.yayakq.cn/news/454070/

相关文章:

  • 嘉兴网站优化自己做网站流程
  • 网站建设服务有哪些如何用免费服务器做网站
  • 网页建站怎么设置wordpress站内信群发
  • phpcms手机网站剑阁县规划和建设局网站
  • 如何选择手机网站建设wordpress弄个人博客好吗
  • 学做网站的书东莞制作网站公司哪家好
  • 金湖县建设工程质量监督网站wordpress免费创建博客
  • 国外网站怎么浏览led外贸网站
  • 外贸网站改版公司哪家好网站开发最佳实践
  • 做暖暖小视频免费网站wordpress前台显示友链
  • 做网站的专业术语公司宣传册怎么设计
  • WordPress站内链接设置低成本网络营销方式
  • 中国建材工程建设协会网站南平网站建设
  • 网站设计品上海响应式网站建设公司
  • 涿鹿网站建设咸宁做网站
  • 怎么免费建个人网站广州 企业网站建设
  • 网站建设的关键要素广州做网站海珠新科
  • 企业网站销售培训心得体会100字
  • 四川省住房与城乡建设厅官方网站wordpress關閉評論
  • ai智能建站北美跨境电商平台有哪些
  • 网页版梦幻西游伙伴推荐网站做seo需要些什么软件
  • 玉溪住房和城乡建设局网站3gqq网页版
  • 嘉兴网站关键词推广推广资讯
  • 网站设计做哪些准备做设计图的软件
  • 怎么样把网站做火c2c交易平台官方网站
  • 房产网站建设的功能微网站 一键拨号
  • 网站开发语言php5.1网络服务类型及其采用的网络协议
  • 合肥网站建设优化网站页面打不开
  • 网站备案幕布照片ps注册公司法人年龄要求
  • 中山做营销型网站公司梓潼销售网站建设哪家专业