MongoDB权威指南笔记 2 Mongodb入门
2013-03-28 21:55
155 查看
Mongodb的基本概念
1.文档是Mongodb中数据的基本单元,非常类似于关系数据库管理系统中的行(但是比行要复杂得多)。
2.类似地,集合可以被看做是没有模式的表。
3.Mongodb的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限。
4.Mongodb自带简洁但功能强大的Javascript Shell,这个工具对于管理Mongodb实例和操作数据作用非常大。
5.每一个文档都有一个特殊的键"_id",它在文档所处的集合中是唯一的。
文档中键的和值的说明
1.文档的键是字符串。除了少数例外情况,键可以使用任意的UTF-8字符。
2.键中不能含有\0(空字符),这个字符用来表示键的结尾。
3.'.'和'$'有特别的意义,一般不使用。
4.以下划线"_"开头的键是保留的。
5.Mongodb不但区分类型也区分大小写。
6.Mongodb的文档中不能有重复的键。
集合
集合就是一组文档。如果说mongodb中文档类似于关系数据库中的行,那么集合就如果表。
Mongodb的数据库命名应该全是小写。注意:数据库名最终会变成文件系统里面的文件。
有一些数据库是保留的,可以直接访问这些有特殊作用的数据库。
admin数据库:这是root用户数据库,如果将一个用户添加到此数据库中,这个用户默认继承所有数据库的权限。
local数据库:这个数据永远不会被复制,可以用来存储限于本地单台服务器的任何集合。
config数据库:当mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
Mongodb默认运行的端口号是 27017,如果通过http访问,则只需要在默认端口上加1000即可,即localhost:28017
Mongodb可以使用任何的javascript函数库,比如Math.ceil()等
选择数据库:use xiaozhe .
查看当前数据库:db
Mongodb Shell的基本操作
在shell中操作数据会用到4个基本操作:创建,读取,更新和删除。
1.创建
insert函数添加一个文档到集合里面。假如创建一篇博客文章,首先创建一个局部变量post,内容是代表文档的javascript对象。如:
>post={'title':'my blog title', 'content':'my blog content', 'date':new Date()}
然后把用insert方法把这个文档插入到blog集合中 >db.blog.insert(post)
查看是否插进了集合中:>db.blog.find()
2.读取
find会返回集合里面所有的文档。若只是查看一个文档,可以用findone方法。
>db.blog.findOne()
3.更新
更新使用update。Update接受2个参数,第一个是要更新文档的限定条件,第二个是新的文档。假设我们想给前面的post文档新增一个comment键,>post.comment=[],然后执行update更新一个标题>db.blog.update{'title':'my blog new title',post}.
现在我们用find查看一下就会出现更新了。
4.删除
db.blog.remove()可以接受一个文档为参数,用来删除指定的数据行,如果不加参数,则视为删除所有数据。
使用Shell的窍门
由于mongo是一个javascript shell,所以我们可以通过输入 help 查看帮助。
有个了解函数功用的技巧,就是在输入函数的时候不加括号,则会显示出该函数的源码,如:db.blog.update
蹩脚的集合名,当用户的集合是Mongodb属性时,例如集合是version,则用db.version会返回当前的版本号。此时我们应该:db.getCollection("version") 这样写。
基本数据类型
1.数字,mongodb支持三种类型,34位和64位整形,64位浮点
2.日期,在mongodb中调用javascript的Date对象作为日期
3.数组,mongodb能理解其结构并能深入操作
4.内嵌文档,就是把整个mongodb的文档作为另一个文档中一个键的值,同数组一样,mongodb能很好的操作其结构
5._id和ObjectId,ObjectId是_id的默认类型,是全局唯一的。
ObjectId,是由12字节,每个字节是2位十六进制数字,总共是一个24位的字符串。
其中0-3字节是时间戳(单位秒),4-6字节是主机名散列值,7-8字节是PID(进程标识符,确保每个进程的ObjectId不同),9-11字节是计数器(确保同一进程的同一秒产生的ObjectId不同,最大值256的3次方)。
_id可以由Mongodb服务器来完成,但是一般会在客户端由驱动程序完成,因为在客户端完成可以减少服务器的开销,将事务交给客户端来做,就减轻了数据库扩展的负担。并且在客户端生产的ObjectId,驱动程序能提供更加丰富的,由自己扩展的API。
1.文档是Mongodb中数据的基本单元,非常类似于关系数据库管理系统中的行(但是比行要复杂得多)。
2.类似地,集合可以被看做是没有模式的表。
3.Mongodb的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限。
4.Mongodb自带简洁但功能强大的Javascript Shell,这个工具对于管理Mongodb实例和操作数据作用非常大。
5.每一个文档都有一个特殊的键"_id",它在文档所处的集合中是唯一的。
文档中键的和值的说明
1.文档的键是字符串。除了少数例外情况,键可以使用任意的UTF-8字符。
2.键中不能含有\0(空字符),这个字符用来表示键的结尾。
3.'.'和'$'有特别的意义,一般不使用。
4.以下划线"_"开头的键是保留的。
5.Mongodb不但区分类型也区分大小写。
6.Mongodb的文档中不能有重复的键。
集合
集合就是一组文档。如果说mongodb中文档类似于关系数据库中的行,那么集合就如果表。
Mongodb的数据库命名应该全是小写。注意:数据库名最终会变成文件系统里面的文件。
有一些数据库是保留的,可以直接访问这些有特殊作用的数据库。
admin数据库:这是root用户数据库,如果将一个用户添加到此数据库中,这个用户默认继承所有数据库的权限。
local数据库:这个数据永远不会被复制,可以用来存储限于本地单台服务器的任何集合。
config数据库:当mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
Mongodb默认运行的端口号是 27017,如果通过http访问,则只需要在默认端口上加1000即可,即localhost:28017
Mongodb可以使用任何的javascript函数库,比如Math.ceil()等
选择数据库:use xiaozhe .
查看当前数据库:db
Mongodb Shell的基本操作
在shell中操作数据会用到4个基本操作:创建,读取,更新和删除。
1.创建
insert函数添加一个文档到集合里面。假如创建一篇博客文章,首先创建一个局部变量post,内容是代表文档的javascript对象。如:
>post={'title':'my blog title', 'content':'my blog content', 'date':new Date()}
然后把用insert方法把这个文档插入到blog集合中 >db.blog.insert(post)
查看是否插进了集合中:>db.blog.find()
2.读取
find会返回集合里面所有的文档。若只是查看一个文档,可以用findone方法。
>db.blog.findOne()
3.更新
更新使用update。Update接受2个参数,第一个是要更新文档的限定条件,第二个是新的文档。假设我们想给前面的post文档新增一个comment键,>post.comment=[],然后执行update更新一个标题>db.blog.update{'title':'my blog new title',post}.
现在我们用find查看一下就会出现更新了。
4.删除
db.blog.remove()可以接受一个文档为参数,用来删除指定的数据行,如果不加参数,则视为删除所有数据。
使用Shell的窍门
由于mongo是一个javascript shell,所以我们可以通过输入 help 查看帮助。
有个了解函数功用的技巧,就是在输入函数的时候不加括号,则会显示出该函数的源码,如:db.blog.update
蹩脚的集合名,当用户的集合是Mongodb属性时,例如集合是version,则用db.version会返回当前的版本号。此时我们应该:db.getCollection("version") 这样写。
基本数据类型
1.数字,mongodb支持三种类型,34位和64位整形,64位浮点
2.日期,在mongodb中调用javascript的Date对象作为日期
3.数组,mongodb能理解其结构并能深入操作
4.内嵌文档,就是把整个mongodb的文档作为另一个文档中一个键的值,同数组一样,mongodb能很好的操作其结构
5._id和ObjectId,ObjectId是_id的默认类型,是全局唯一的。
ObjectId,是由12字节,每个字节是2位十六进制数字,总共是一个24位的字符串。
其中0-3字节是时间戳(单位秒),4-6字节是主机名散列值,7-8字节是PID(进程标识符,确保每个进程的ObjectId不同),9-11字节是计数器(确保同一进程的同一秒产生的ObjectId不同,最大值256的3次方)。
_id可以由Mongodb服务器来完成,但是一般会在客户端由驱动程序完成,因为在客户端完成可以减少服务器的开销,将事务交给客户端来做,就减轻了数据库扩展的负担。并且在客户端生产的ObjectId,驱动程序能提供更加丰富的,由自己扩展的API。
相关文章推荐
- MongoDB权威指南笔记
- mongodb权威指南笔记
- MongoDB权威指南--阅读笔记(三)
- MongoDB权威指南--阅读笔记(一)
- MongoDB权威指南--笔记
- MongoDB权威指南 笔记
- MongoDB权威指南--阅读笔记(二)
- github快速使用指南—git学习笔记
- 《高质量 C++/C 编程指南 》阅读笔记(三)
- JS权威指南学习笔记之文档结构和遍历
- 2.[Struts2权威指南笔记]Servlet
- 一线架构师实践指南--笔记
- chrom开发者工具不完全指南(笔记一)
- IPython下字符串的简单处理 - 千月的python linux 系统管理指南学习笔记(8)
- IDA权威指南阅读笔记2
- js-权威指南学习笔记4
- Google 开源项目风格指南阅读笔记(C++版)
- django1.8.3搭建博客——2 django web 开发指南阅读笔记
- OpenOffice开发者指南笔记
- css 权威指南笔记(一)