MongoDB存储数据类型
MongoDB中每条记录称作一个文档,这个文档和我们平时用的JSON有点像,但也不完全一样。JSON是一种轻量级的数据交换格式。简洁和清晰的层次结构使得JSON成为理想的数据交换语言,JSON易于阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率,但是JSON也有它的局限性,比如它只有null、布尔、数字、字符串、数组和对象这几种数据类型,没有日期类型,只有一种数字类型,无法区分浮点数和整数,也没法表示正则表达式或者函数。由于这些局限性,BSON闪亮登场啦,BSON是一种类JSON的二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型,MongoDB使用BSON做为文档数据存储和网络传输格式。
1.7.1 数字
shell默认使用64位浮点型数值,如下:
db.sang_collec.insert({x:3.1415926})
db.sang_collec.insert({x:3})
1
2
对于整型值,我们可以使用NumberInt或者NumberLong表示,如下:
db.sang_collec.insert({x:NumberInt(10)})
db.sang_collec.insert({x:NumberLong(12)})
1
2
1.7.2 字符串
字符串也可以直接存储,如下:
db.sang_collec.insert({x:"hello MongoDB!"})
1
1.7.3 正则表达式
正则表达式主要用在查询里边,查询时我们可以使用正则表达式,语法和JavaScript中正则表达式的语法相同,比如查询所有key为x,value以hello开始的文档且不区分大小写:
db.sang_collec.find({x:/^(hello)(.[a-zA-Z0-9])+/i})
1
1.7.4 数组
数组一样也是被支持的,如下:
db.sang_collec.insert({x:[1,2,3,4,new Date()]})
1
数组中的数据类型可以是多种多样的。
1.7.5 日期
MongoDB支持Date类型的数据,可以直接new一个Date对象,如下:
db.sang_collec.insert({x:new Date()})
1
1.7.6 内嵌文档
一个文档也可以作为另一个文档的value,这个其实很好理解,如下:
db.sang_collect.insert({name:"三国演义",author:{name:"罗贯中",age:99}});
1
书有一个属性是作者,作者又有name,年龄等属性。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




