MongoDB自学日记1——基本操做

      做为一个作底层及后台研发的,最近对NoSQL却产生了浓厚的兴趣,加入了一个DBA群,听说北京排的上号的DBA都在里面,然而里面基本都是Oracle系的,MySQL和MongoDB系的少之又少。学习靠不得别人,要和Oracle大佬们撕比尚需时日。php

      废话少说,在抱怨关系型数据库的死板及开发效率,力推NoSQL以后,NoSQL的表明之一MongoDB也受过一些质疑,好比《Don't use mongoDB》一文。然而NoSQL的应用却仍是没有停下,好比滴滴就是NoSQL。在去IOE的大趋势下,阿里选的是MySQL,大部分公司基本也选的是MySQL(MySQL比MongoDB早)。大公司确定不太愿意,或者主动向新的数据库迁移,由于代价太大,并且也因为公司及数据规模也必然趋于保守选择(最近Oracle的盛会上看到刚发布的sharding特性,然而通常NoSQL早就支持了)。mongodb

      为何要向MongoDB迁移,以及迁移会有带来什么问题恐怕只有亲身作过的大牛才能回答。通常的说法是由于NoSQL更适合于集群,大多数NoSQL的研发动机都是为了适应集群,NoSQL不像关系型数据库那样死板,比较轻量级。数据库

1.基本操做

      建立数据库并插入,MongDB是文档型NoSQL数据库,集合至关于关系型数据库中的表,文档至关于一行数据。语法与JavaScript相似。下面是一些基本的增删改查操做。学习

建立数据库ui

>Use myfirstdbspa

建立集合命令行

>db.createCollections(“Company”);ip

插入一条数据ci

>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重启服务。

      以上纯属我的浅见,初学欢迎探讨指正~

相关文章
相关标签/搜索