设为首页 加入收藏

TOP

MongoDB自学日记1
2015-11-21 01:26:38 来源: 作者: 【 】 浏览:0
Tags:MongoDB 自学 日记
作为一个做底层及后台研发的,最近对NoSQL却产生了浓厚的兴趣,加入了一个DBA群,据说北京排的上号的DBA都在里面,然而里面基本都是Oracle系的,MySQL和MongoDB系的少之又少。学习靠不得别人,要和Oracle大佬们撕比尚需时日。
?
废话少说,在抱怨关系型数据库的死板及开发效率,力推NoSQL之后,NoSQL的代表之一MongoDB也受过一些质疑,比如《Don't use mongoDB》一文。然而NoSQL的应用却还是没有停下,比如滴滴就是NoSQL。在去IOE的大趋势下,阿里选的是MySQL,大部分公司基本也选的是MySQL(MySQL比MongoDB早)。大公司肯定不太愿意,或者主动向新的数据库迁移,因为代价太大,而且也由于公司及数据规模也必然趋于保守选择(最近Oracle的盛会上看到刚发布的sharding特性,然而一般NoSQL早就支持了)。
?
为什么要向MongoDB迁移,以及迁移会有带来什么问题恐怕只有亲身做过的大牛才能回答。一般的说法是因为NoSQL更适合于集群,大多数NoSQL的研发动机都是为了适应集群,NoSQL不像关系型数据库那样死板,比较轻量级。
?
1.基本操作
创建数据库并插入,MongDB是文档型NoSQL数据库,集合相当于关系型数据库中的表,文档相当于一行数据。语法与java script类似。下面是一些基本的增删改查操作。
?
创建数据库
?
>Use myfirstdb
?
创建集合
?
>db.createCollections(“Company”);
?
插入一条数据
?
>db.Company.insert({uid:1, username: “Tom”, age: 25});
?
>WriteResult({ "nInserted" : 1 })
?
查询记录:
?
查询整个集合中的记录
?
>db.Company.find();
?
查询指定字段的记录
?
>db.Company.find({username: “Jerry”});
?
修改记录:
?
>db.Company.update({username: “Truman”}, {$set: {age : 50}});
?
删除记录:
?
>db.Company.remove({uid: 1});
?
2. Problems
?
在Windows下尝试搭建一个学习实验环境碰到的问题。
?
1.服务无法启动的问题
?
采用 源码包可能存在问题,所以直接使用安装程序,即.msi文件。学习MongoDB解决的第一个问题就是如何启动MongoDB服务并进入 数据库。MongoDB安装完成后启动:
?
$net start mongdb
?
这时可能会报无法启动服务的错误。Windows下可以先打开任务管理器,查看服务中是否已经有了MongoDB,如果有则可以先卸载MongoDB,之后重新安装,再net start mongodb,若输出MongoDB服务已经启动,则执行mongo.exe即可进入数据库命令行。?
?
2.服务无法启动
?
从控制面板中无法启动服务,报错,网上说的都不靠谱。
?
015-10-29T20:14:48.328+0800 W NETWORK ?Failed to connect to 127.0.0.1:27017, reason: errno:10061 由于目标机器积极拒绝,无法连接。
?
卸载mongodb服务并重装后问题解决,然而这显然不行,必须以热方式解决。后来发现mongodb安装数据目录下会有一个.lock文件,删除文件以后重启服务就可以启动了,但为什么会这样还需要研究。Net start mongodb重启服务。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Redis命令速查表 下一篇在批处理中调用JS操作MongoDB

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: