Mongo基础知识
1.文档
文档采用类似Json对象的方式存储数据,例如:{"name":"qiuhaoxiang","department":"rdapp"},可以理解为文档的概念就类似数据库里面一行数据。
命名规则:
文档的Key不能含有\0(空字符)
.和$具有特殊意义,通常这两个字符是被保留的
2.集合
集合就是一组文档,一个集合就可以理解为一张数据表,但是这个表很特殊,可以有一个子集合的概念,就是类似表中还有数据表的意思。
命名规则:
集合名称不能为空
集合名不能包含\0字符
集合名不能以system开头
集合名不能包含$字符
3.数据库
一个MongoDb程序可以启动可以承载多个数据库,一个数据库能够包含多个集合。
命名规则:
名称不能是空字符串
不区分大小写,建议全小写
因为数据库名最后会作为文件名存储,所有大部分特殊字符都不能使用,只能用ASCII中的字母和字符作为名称
4.Shell
MongoDB自带Javascript Shell,因此很多javascript内置的方法和对象都能在shell使用。就意味着,在任何一个能够编辑.js文件的编辑器都可以方便的进行MongoDB的shell开发,比如可以很简单的就生成好MongoDB的内置数据。
5.基本操作
var people = {"name":"qiuhaoxiang","department":"rdapp"};
db.Users.insert(people);
db.Users.find()
var newPeople = {"name":"lilonghua","department":"rdapp"};
db.Users.update({"name":"qiuhaoxiang"},newPeople)
db.Users.find()
db.Users.remove({"name":"lilonghua"})
db.Users.find()
5.1创建
var people = {"name":"qiuhaoxiang","department":"rdapp"};
db.Users.insert(people);
5.2读取
db.Users.find()
5.3更新
var newPeople = {"name":"lilonghua","department":"rdapp"};
db.Users.update({"name":"qiuhaoxiang"},newPeople)
参数填写的是一个条件,就类似于SQL里面的Delete FROM WHERE,这里面填的条件的意思就是名称为qiuhaoxiang的
5.4删除
db.Users.remove({"name":"lilonghua"})
参数填写的是一个条件,就类似于SQL里面的Delete FROM WHERE,这里面填的条件的意思就是名称为lilonghua的
5.5执行截图
6.数据类型
类型 | 描述 | 样例 |
---|---|---|
null | 表示空值 | {"hobby" : null} |
数值 | shell默认使用64位浮点数 | {"price": 4.5} |
整数 | 4字节带符号整数 | {"price": NumberInt("4.5")} |
长整数 | 8字节带符号整数 | {"price": NumberLong("3")} |
字符串 | 依据MongoDb的整体编码而定的字符串 | {"hobby" : "PCGame"} |
日期 | 表示日期 | {"hobby" : new Date()} |
正则表达式 | 表示正则表达式 | {"hobbyRe" : /PCGame/i} |
数组 | 表示一组数据 | {"hobby" : ["PCGame","Sleep"]} |
内嵌文档(或者说内嵌对象) | 表示对象里面嵌套对象 | {"VegettablePrice" : {"potato":4.5,"tomato":3.7}} |
对象Id | 对象id是一个12字节的ID,是文档的唯一标识 | {"id" : ObjectId()} |
二进制数据 | 在shell不能用 | {"x":BinData(....)} |
代码 | 存储javascript可执行代码 | {"buy" : function() {/*...*/}} |