1、使用shell的窍门
mongo是个javascript shell,如insert,update remove其实就是js函数,如果想了解这些函数的源码,不要输入括号就可以了显示了。
集合名不能是数据库类的属性,如db.version,当属性和目标集合同名时,可以使用getCollection函数正确获取集合名,
db.getCollection("version")
getCollection 函数还可以对 foo-bar这样的集合进行正确获取,因为foo-bar在js里是变量相减的意思。
2、数据类型
1)基本数据类型
json的数据类型:null、布尔、数字、字符串、数组、对象
MongoDB在json原有的数据类型的基础上增加以下类型:
null:{"x":null}
布尔:{"x":true}
32位整数: (1)
64位整数:(1)
64位浮点数:{"x":3.14} {"x":3}
字符串:{"x":"bar"}
符号:(1)
日期:{"x": new Date()}
正则表达式:{"x": /foobar/i}
对象id:{"x":ObjectId()}
代码:{"x":function(){/*...*/}}
二进制:(1)
最大值:(1)
最少值:(1)
未定义:{"x":undefined}
内嵌文档:{"x":{"foo":"bar"}}
数组:{"x":["a","b","c"]}
注(1):表示数据类型在shell中不可用
2)数字
js中只有一种数字类型,而mongoDB中有三种,所以shell必须绕过js限制。64位整数并不能精确地表示64位浮点数
3)日期
shell 中的日期显示时使用本地时区设置
4)数组
数组是一组值,既可有序操作,也可无序操作
5)内嵌文档
就是把整个MongoDB文档作为另一个文档中键的值
6)_id和ObjectId
每个文档都有一个"_id"健,默认为ObjectId对象,也可以是任何类型,_id在插入文档的时候系统会自动添加此键。