日期:2014-05-16  浏览次数:20611 次

MongoDB学习记录
MongoDB(from "humongous")是一个用C++编写的,可扩展,高性能,开源,面向文档的数据库。
特点:
  • 1,面向文档的储存结构:使用Bson(short for Bin?ary JSON)格式存储数据,使用动态的schemas(简单,高效)。Bson[bee ? sahn]:是二进制编码,类似与json格式序列化的文档。和Json一样,Bson支持documents和arrays的嵌套。对于Json的扩展:Bson支持数据类型,如类型:Date,BinData
  • 2,模式自由
  • 3,支持任意属性的索引(包括内部对象)
  • 4,复制和故障恢复
  • 5,水平扩展,不需要功能上的妥协
  • 6,面向文档的查询
  • 7,…

快速开始:
  • 1,下载Windows 32位2进制安装包,http://www.mongodb.org/downloads
  • 2,解压
  • 3,创建数据文件目录:默认MongoDB把数据存储在\data\db目录,但是它不会自动创建这个目录,需要手动创建数据文件目录并通过参数—dbpath来指定
  • 4,运行和连接到数据库:mongod.exe(数据库服务器),mongo.exe(管理用的命令行shell)。
  • 5,开启服务器:mongod --dbpath=e:\MongoDB\data(详细参数比如开启验证通过 --help来查看)
  • 6,连接服务器:mongo(详细参数通过mongo --help来查看)不带参数默认连接本机的test数据库
  • 7,把MongoDB安装成windows服务:(注意参数前面都是--)  mongod --logpath e:\MongoDB\logs\MongoDB.log --logappend --dbpath e:\MongoDB\data --directoryperdb --serviceName MongoDB --rest --install 参数解释--rest:启用简单rest API,开启后通过http://localhost:28017/(Web管理客户端)可以查看到服务器状态等更加多的信息,参考http://www.mongodb.org/display/DOCS/Windows+Service
  • 8,完成!

Windows服务相关命令:
  • 1,mongod --install
  • 2,mongod --service
  • 3,mongod --remove
  • 4,mongod --reinstall
  • 5,net start MongoDB
  • 6,net stop MongoDB

MongoDB与其他数据库的不同点:
  • 1,不需要先建立database或者collection,在插入数据的时候,MongoDB默认自动帮你创建相应的database或者collection
  • 2,如果查找一个不存在的collection,MongoDB会返回一个空的collection而不是出错提示
  • 3,当使用命令use mydb切换数据库的时候,MongoDB不会马上创建这个数据库,也就是说如果这是你第一次使用这个数据库,那么他不会显示在命令show dbs提供的list中直到第一次插入数据后,数据库才被正式建立

使用帮助:
  • 1,mongod --help,mongo --help,以及连接上数据库后在命令行shell使用help命令,根据help命令查出来的命令如db.help()继续查看db的帮助命令,db.coll.help():coll集合必须存在时,调用db.coll可用的帮助命令!
  • 2,mongo是一个JavaScript的命令行shell,允许你通过命令行来执行数据库交互命令。他是SpiderMonkey(https://developer.mozilla.org/En/SpiderMonkey/Introduction_to_the_JavaScript_shell)的一个扩展
  • 3,http://localhost:28017/(Web管理客户端)
  • 4,32位windows下MongoDB数据库的大小限制约为2.5G(限制存在的原因是MongoDB存储引擎使用高性能的内存映射文件),也就是说如果数据大小达到2G,那么在XP下面数据库基本上打不开!
  • 5,把数据从mysql导入到MongoDB后,数据文件的大小会增加很多,这是由于MongoDB的Bson存储结构引起的
  • 5,表达式db.model_info.count({TYPE_CD:"532"})中,key可以是TYPE_CD或者"TYPE_CD",但是value:"532"和532是不一样的,区分类型!!

安装Windows服务后,启动的时候报错误【错误 193: 0xc1】,Windows事件查看器中提示【Mongo DB 不是有效的 Win32 应用程序。】:
  • 1,解决:首先确认安装时使用的logpath和dbpath对应的路径是否存在,不存在建立
  • 2,网上说解决错误193: 0xc1的方法是删除service安装的驱动盘根目录下的一个名叫“program”的文件,但是我没有找到!!后来发现mongodb的bin目录下面有个叫mongod的大小为0的文件,删除后重新安装服务,启动成功!
  • 3,总结:出现上面类似的问题解决的基本思路就是确认使用的路径存在,同时,确保要被安装成服务的exe文件相应的目录下没有可以混淆的同文件名的文件存在