MongoDB学习笔记——1

  1. 文档键的要求:
    • 键不能包含\0(空字符)。该字符表示键的结尾。
    • .和$有特殊含义,只在特定环境下使用,当使用不当时,驱动程序会提示。
    • 以下划线开头的键是保留的,——非严格要求。
    • 键不能重复。
  2. 一组文档构成集合。集合是无模式的,也就是说集合中的每一个文档结构可以不同。如{"greeting":"hello,mongodb"}、{"foo":5}可以存放在同一集合中。——但是不建议将所有文档放在一个集合中。这样不但影响开发、而且在在查询效率上也会受到影响。
  3. 集合的命名:
    • 集合名不能是空字符串""。
    • 集合名不能含有\0(空字符),这个字符表示集合的结尾。
    • 集合名不能以"system."开头,因为这是系统集合保留前缀。
    • 用户创建的集合名字不能含有保留字符$。
  4. 子集合:组织集合的一种惯例是使用“.”字符分开的按命名空间划分的子集合。【强烈推荐】
  5. MongoDB中多个文档组成集合,多个集合可以组成数据库。一个MongoDB实例可以承载多个数据库,而且彼此之间完全独立。
  6. 数据库的命名:
    • 应全部小写
    • 不能是空字符串
    • 不能含有空格、.、$、/、\、\0
    • 最多64字节
    • 数据库保留名:admin,local,config。
  7. 命名空间:把数据库的名字放到集合名前面,得到集合的完全限定名,被称为命名空间。命名空间长度不得超过121字节,实际使用中应小于100字节。
  8. MongoDB安装:
    • 下载地址:www.mongodb.org,解压后安装。版本说明:偶数的版本号为稳定版,奇数为开发板。大版本号。如1.6表示稳定版,则1.6.x均为稳定版;1.7表示开发板,则1.7.x都是开发板。
    • MongoDB需要一个数据目录写入数据库文件,和一个端口来监听链接,默认端口号27017。
    • Windows下安装:
    • 创建目录,用于存放数据库文件,默认情况下c:\data\db。如果使用自定义目录,则在启动MongoDB时,需要指明数据目录。
    • cmd.exe——进入MongoDB解压目录,执行:
      • bin\mongod.exe——默认目录时
      • bin\mongod.exe --dbpath “自定义目录路径”——自定义目录时
    • 作为服务进行安装:MongoDB解压目录\bin\mongod.exe ----dbpath “自定义目录路径” --install
  9. 启动MongoDB:指令:./mongod。windows下:mongod.exe.
  10. mongod会启动一个非常基本的http服务器,监听数字比主端口号高1000,即28017。所以用户可以通过浏览器访问http://localhost:28017来获取数据库的管理信息。
  11. 停止mongod运行:启动服务器的shell下,键入ctrl-c。
  12. MongoDB shell是MongoDB自带的一个JavaScript shell,可以从命令行与MongoDB实例交互。
  13. shell查看操作数据的四个基本操作:创建(insert)、读取(find、findOne)、更新(update)和删除(remove)。后续的笔记将会详细讲解使用方法。
  14. 使用shell获取,帮助,可以通过键入help。要查看shell提供的所有自动生成的javas函数API文档,可以可以访问:http://api.mongodb.org/js
  15. MongoDB中的数字类型:32位整数、64位整数和64位浮点数。默认情况下,双精度数。
    • 当使用shell时,默认为双精度。这样已来,当你操作一个MongoDB中的32位整数时,修改文档,并将文档保存时,该数据类型将变为双精度。
    • 64位的整数并不一定可以表示为精确的64位浮点数。当不能精确表示时,shell会添加两个键,"top"、"bottom"。
    • 32位的整数可以用64位的浮点数精确的表示。
  16. 日期new Date(…)返回日期的字符串表示
  17. 数组是一组数值,即可作为有序对象来操作,也可作为无序对象操作。数组中可以包含不同的数据类型的元素。
  18. 内嵌文档:将整个文档作为另一个文档中的键的一个值。
  19. _id & ObjectId :MongoDB中存储的文档必须有一个"_id"键(相当于关系型数据库中的主键),可以是任意类型的,默认为ObjectId对象。
  20. ObjectId的设计师轻量级的,不同机器都能用全局唯一的同种方法方便的生成它,在多个服务器上同步自动增加主键值既耗时又费力,也是MongoDB采用objectId的主要原因。Object使用12字节存储空间,每个字节两位16进制数字,是一个24位的字符串。
  21. 12字节按照如下方式生成:
    • 前四位(0-3):时间戳,与随后的5个字节组合起来,提供了秒级别的唯一性。——隐含文档创建时间
    • 4-6:主机唯一识别符。通常为主机名的散列值。
    • 7-8:进程表示符(PID),保证同一台主机并发产生ObjectId的唯一性。
    • 后三位(9-11):自动增加的计数器,确保同一进程同一秒产生的objectId也不一样。256^3个
  22. 通常由客户端驱动程序完成_id的生成。理由如下:
    • MongoDB的设计理念:能从服务端转移到驱动程序来做的事,就尽量转移。减轻数据库扩展的负担。
    • 在客户端生成objectId,驱动程序能够提供更丰富的API。例如,驱动程序可以有自己的insert方法,可以返回生成的ObjectId,也可以直接将其插入文档中。如果驱动程序运行服务器生成objectId,那么将需要单独的查询,已确定插入文档中的"_id"值。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值