Mongo中的数据类型
一、null
null用于表示空值或者不存在的字段
{"X" : null}
二、布尔型
布尔类型有两个值true和false
{"x" : true}
三、数值
{"x" : 3.14}
{"x" : 3}
四、字符串
{"x" : "qiaoansheng"}
五、日期类型
{"x" : new Date()}
六、正则表达式
{"x" : /foobar/i}
七、数组
("x" : ["a", "b", "c", "d"])
八、内嵌文档
{"x" : {"qiao" : "ansheng"}}
九、对象id
{"x" : ObjectId()}
十、二进制数据
十一、代码
{"x" : function() { /* ... */ }}
日期:
在shell中创建日期对象的时候使用的是new Date() 返回的是一个日期类型的字符串 (2016/4/7 2:03:42)
数组:
数组是一组值,它既能作为有序对象(入列表、栈或队列),也能作为无序对象(入:数据集)来操作
{"qiao" : ["an", "sheng", 3, 4.12]}
上面 "qiao" 的文档中, qiao 这个键的值是一个数组
数组中可以包含不同数据类型的元素
内嵌文档
{
"OldId" : 934326,
"Catalogs" : [{
"CatalogId" : "5591f46e049fbb3c241a2526",
"ParentId" : "",
"CatalogName" : "语法",
"Depth" : 0
}, {
"CatalogId" : "561746121daa7e28881ed7ff",
"ParentId" : "5591f46e049fbb3c241a2526",
"CatalogName" : "句型",
"Depth" : 1
}],
"Points" : []
}
内嵌文档,中可以这样存放数据,在关系数据库中,我们可以通过关系关联多张表来获取数据(比如说数据库中有两张表他们之间的关系是一对多的,那我就要通过这个一来获取这个多的数据,把它们放到一个list集合中)
但是在mongo中,因为他是非关系型数据库,所以我们无法进行表关联
所以我们就使用内嵌文档的方式,把 多的这个数据存入到一的某一个键内
这样我们从mongo中读取这个数据的时候,会自动给我们反序列化,这个Model 其中Catalogs 这个变量对应的是一个List的一个集合,集合中的数据就是数据库中Catalogs 的值
mongoNB的一点是,他还能在内嵌文档中,在嵌入文档,程序获取数据的时候,也能给反序列化出来,集合中嵌套集合
但是有一点,mongo目前只能修改到第二级的集合,也就是最多只能修改Catalogs 下面的数据
如果Catalogs 下面的数据中嵌套的还有集合,就不能直接更新了,只能把 Catalogs 重新构建这个数据,更新到数据库中
_id和ObjectId
ObjectId使用12字节的存储空间,是一个有24个十六进制数字组成的字符串,他是mongo的默认主键
Mongo中的数据类型的更多相关文章
- JavaScript 中的数据类型
Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...
- hibernate中java类的成员变量类型如何映射到SQL中的数据类型变化
hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型 在从Hibernate的java的成员类型映射到SQL中的数据类型,其内映射方式它满足,SQL可以自己调制 ...
- js中的数据类型
JS中的数据类型: ——数字 (number)NaN ——字符串(string) ——布尔 (boolean)——函数 (function) 也是对象的一种 ——对象 (object) ...
- 如何判断js中的数据类型?
js六大数据类型:number.string.object.Boolean.null.undefined string: 由单引号或双引号来说明,如"string" number: ...
- 如何判断js中的数据类型
如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstri ...
- c中的数据类型、常量、变量
一. 数据 1. 什么是数据 生活中时时刻刻都在跟数据打交道,比如体重数据.血压数据.股价数据等.在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据.图片数据.视频数据,还有聊QQ时产生的文 ...
- [转]如何判断js中的数据类型
原文地址:http://blog.sina.com.cn/s/blog_51048da70101grz6.html 如何判断js中的数据类型:typeof.instanceof. constructo ...
- 数据库中字段类型对应的C#中的数据类型
数据库中字段类型对应C#中的数据类型: 数据库 C#程序 int int32 text string bigint int64 binary System.Byte[] ...
- C++中各种数据类型占据字节长度
准备校招笔试的时候经常遇到C++某个数据类型占据多少个字节的问题,查阅了下资料,总结如下: 首先罗列一下C++中的数据类型都有哪些: 1.整形:int.long 2.字符型:char.wchar_t ...
随机推荐
- SU Demo之02Filtering--01Sufilter
欢迎各位网友批评指正! 今天博文例子位于如下目录: 第一个脚本: 下面是显示结果: 第二个脚本: 运行结果如下: 第三个脚本: 第四个脚本: 第五个脚本: 最后看看sumute命令的说明:
- 简单几何(凸包) POJ 2187 Beauty Contest
题目传送门 题意:求两点的距离平方的最大值 分析:凸包模板题 /************************************************ * Author :Running_T ...
- POJ2125 Destroying The Graph(二分图最小点权覆盖集)
最小点权覆盖就是,对于有点权的有向图,选出权值和最少的点的集合覆盖所有的边. 解二分图最小点权覆盖集可以用最小割: vs-X-Y-vt这样连边,vs和X部点的连边容量为X部点的权值,Y部和vt连边容量 ...
- ZOJ 3911 Prime Query ZOJ Monthly, October 2015 - I
Prime Query Time Limit: 1 Second Memory Limit: 196608 KB You are given a simple task. Given a s ...
- velocity 判断 变量 是否不是空或empty
原先的 #if($mobile) 这种写法是不准确的 ,请换成 "$!{ mobile}"!="" 说明 : #if($mobile) 这种写法 只能 ...
- POJ 3661 (线性DP)
题目链接: http://poj.org/problem?id=3661 题目大意:牛跑步.有N分钟,M疲劳值.每分钟跑的距离不同.每分钟可以选择跑步或是休息.一旦休息了必须休息到疲劳值为0.0疲劳值 ...
- 【MVC框架整合】之 SpringMVC3.2.0+MyBatis3.1.1+Spring3.2.0
1.先整合spring和Mybatis 第一步基本上都是一样加入jar包 创建测试目录 添加junit jar包和log4j配置文件 Log4j的配置文件基本上都是不会变的复制过来就行了 现在就和Hi ...
- 网站建设中HTTP状态码的奥秘
在网络营销中,站长经常会遇到一些HTTP状态码的问题,不懂HTTP状态码那么做SEO优化就无从谈起,下面是脉凌网络对HTTP状态码总结的一览表. 1xx:请求收到,继续处理 2xx:操作成功收到,分析 ...
- Silic PHP大马Cookie欺骗漏洞
$password="ebd9a3c106064a255aaee28b6eb4f21c"; if($_COOKIE['admin_silicpass'] != md5($passw ...
- 解决win7系统远程桌面 server 2003 卡的问题
原因在于从vista开始,微软在TCP/IP协议栈里新加了一个叫做“Window Auto-Tuning”的功能.这个功能本身的目的是为了让操作系统根据网络的实时性能(比如响应时间)来动态调整网络上传 ...