这篇文章主要讲解了“MongoDB的安装及常用操作命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MongoDB的安装及常用操作命令”吧!

环境:centos7

Ip: 172.16.200.48

..............................................................................................

一、Mongodb的安装与启动

1、mongo的安装

步骤 1、下载:

#cd/usr/local/src/#wgethttps://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.3.tgz#tar-zxvfmongodb-linux-x86_64-rhel70-3.4.3.tgz

步骤 2、配置环境变量

#vim/etc/profile

添加一下内容:

exportMONGODB_HOME=/usr/local/mongodbexportPATH=$MONGODB_HOME/bin:$PATH

步骤 3、查看mongodb版本信息

#mongod-v

安装成功。

2、mongo的启动

步骤 4、创建数据库目录(MongoDB需要自建数据库文件夹)

#mkdir-p/data/mongodb#mkdir-p/data/mongodb/log#touch/data/logs/mongodb/mongodb.log

步骤 5、添加配置文件

新建mongodb.conf配置文件, 通过这个配置文件进行启动.

#vim/etc/mongodb.conf

配置文件参数说明:

mongodb的参数说明:


--dbpath 数据库路径(数据文件)


--logpath 日志文件路径


--master 指定为主机器


--slave 指定为从机器


--source 指定主机器的IP地址


--pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,***通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。


--logappend 日志文件末尾添加


--port 启用端口号


--fork 在后台运行


--only 指定只复制哪一个数据库


--slavedelay 指从复制检测的时间间隔


--auth 是否需要验证权限登录(用户名和密码)

配置文件内容:

dbpath=/data/mongodb

logpath=/data/logs/mongodb/mongodb.log

logappend=true

port=27017

fork=true

##auth = true # 先关闭, 创建好用户在启动

步骤 6、通过配置文件启动

#mongod-f/etc/mongodb.conf##启动

出现successfully表示启动成功了。

说明

MongoDB的启动:

不建议用service mongod start或者chkconfig mongod on来启动MongoDB,因为mongod每次启动需要带参数,不然会造成错误;

建议用mongod命令来启动,先设置好配置文件/etc/mongod.conf后,每次手动用命令启动:mongod -f /etc/mongodb.conf

或者设置开机重启: echo “mongod –f /etc/mongod.conf” >>/etc/rc.d/rc.local

MongoDB的关闭

不建议使用强制关闭MongoDB: service mongod stop

推荐使用:从mongodb的admin中关闭

>useadminswitchedtodbadmin>db.shutdownServer()servershouldbedown...

或者mongod --shutdown

使用shutdownServer关闭MongoDB,如有MongoDB主从服务器,则在服务关闭前同步主从服务器;强制关闭则不会;

步骤 7、进入mongodb的后台管理shell

#cd/usr/local/mongodb/bin#./mongo

步骤 8、创建数据库

>usetest创建数据库test

使用use DATABASE_NAME创建一个数据库。如果数据库不存在,则创建数据库,否则切换到指定数据库。

二、Mongo中常用命令

[root@snails~]#ps-ef|grepmongod[root@snails~]#mongo--host=127.0.0.1--port=27017MongoDBshellversion:3.2.7connectingto:127.0.0.1:27017/test>showdbs#显示数据库列表>showcollections#显示当前数据库中的集合(类似关系数据库中的表)>showusers#显示用户>use<dbname>#切换当前数据库,如果数据库不存在则创建数据库。>db.help()#显示数据库操作命令,里面有很多的命令>db.foo.help()#显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令>db.foo.find()#对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)>db.foo.find({a:1})#对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1>db.dropDatabase()#删除当前使用数据库>db.cloneDatabase("127.0.0.1")#将指定机器上的数据库的数据克隆到当前数据库>db.copyDatabase("mydb","temp","127.0.0.1")#将本机的mydb的数据复制到temp数据库中>db.repairDatabase()#修复当前数据库>db.getName()#查看当前使用的数据库,也可以直接用db>db.stats()#显示当前db状态>db.version()#当前db版本>db.getMongo()#查看当前db的链接机器地址>db.serverStatus()#查看数据库服务器的状态

三、Shell中的基本操作:增删改查

1. # mongo

启动mongodb数据库

2. > db

可以查看db当前指向哪个数据库

3. 进入数据库 > use test;

使用use DATABASE_NAME使用use 数据库名就可以切换全局变量db当前指向的数据库。注意:use操作同时可以创建数据库,如果use+一个不存在的数据库名,则use执行后,MongoDB会创建对应数据库。

4. 查询数据库 > show dbs; (要显示数据库必须插入至少一条文档)

5. 删除数据库 > db.dropDatabase();

6.创建、删除集合

createCollection() 方法

db.createCollection(name, options)

在命令中, name 是要创建的集合的名称. Options 是一个文件,用于指定配置的集合

删除集合:drop() 方法

db.COLLECTION_NAME.drop() 是用来从数据库中删除一个集合

#创建集合#进入数据库mongos>usetest;mongos>db.createCollection("mycollection"){"ok":1}mongos>showcollections;#查看集合mycollection#删除集合#进入数据库mongos>usetestdb;mongos>showcollections;mycollectionmongos>db.mycollection.drop();truemongos>showcollections;

7. 插入文档

MongoDB使用insert()或save()方法向集合中插入文档,语法如下:

db.COLLECTION_NAME.insert(document)

插入文档

>usetestswitchedtodbtest>db.col.insert({name:'morris',age:22})WriteResult({"nInserted":1})

以上实例中col是集合名,如果该集合不在该数据库中,MongoDB会自动创建该集合并插入文档。

查看已插入的文档

>db.col.find(){"_id":ObjectId("56e12c22de2a8692a3099065"),"name":"morris","age":22}

在我们插入文档的时候,如果我们没有为该文档指定_id,mongodb将会为我们的文档自动创建一个不会重复的ObjectId

有条件的查询已插入文档

db.[集合名].find(<query>,<projection>)#>db.user.find({name:"user2"})##查询name为user2这条记录#>db.user.find({name:"user2"},{age:1});##查询name为user2这条记录的age字段

定义变量插入文档

>doc={name:'jack',age:20}{"name":"jack","age":20}>db.col.insert(doc)WriteResult({"nInserted":1})>db.col.find(){"_id":ObjectId("56e12c22de2a8692a3099065"),"name":"morris","age":22}{"_id":ObjectId("56e12f49de2a8692a3099068"),"name":"jack","age":20}

插入文档也可以使用db.col.save(document)命令。如果不指定_id 字段save()方法类似于insert()方法。如果指定_id字段,则会更新该_id的数据。

插入多个文档

如果我们在insert中传入了多个文档,mongodb只会插入***个文档,下面的代码中只插入了***个文档。

>db.user.find()>db.user.insert({name:"user1"},{name:"user2"})>db.user.find(){"_id":ObjectId("519cd757f83727a8baf0a8e2"),"name":"user1"}

如果我们想一次插入多个文档,可以将多个文档组合成一个数组,这样就能够插入成功了,例子代码如下:

>db.user.find()>db.user.insert([{name:"user1"},{name:"user2"}])>db.user.find(){"_id":ObjectId("519cd842f83727a8baf0a8e3"),"name":"user1"}{"_id":ObjectId("519cd842f83727a8baf0a8e4"),"name":"user2"}

我们可以使用javascript批量插入数据。由于mongodb shell简单的说就是一个javascript shell所以javascript代码可以在mongodb shell中运行,所以我们可以使用javascript代码进行批量插入数据,例如我们插入10个用户到user集合中,代码如下:

>for(i=1;i<=10;i++){...db.user.insert({_id:i,name:"user"+i,age:10+i})...}

8.更新文档

#显示集合文档mongos>db.col.find();{"_id":ObjectId("55113e5477eaee1608881c84"),"name":"antian"}#更新文档mongos>db.col.update({"name":"antian"},{"name":"wuhan"});#显示集合文档mongos>db.col.find();{"_id":ObjectId("55113e5477eaee1608881c84"),"name":"wuhan"}

9.删除文档

#删除文档内容mongos>db.col.remove({"name":"antian"});#删除集合:db.col.drop();

10.限制记录

mongos>db.col.find({},{"sip":1,_id:0}).limit(2);

11.排序文档

降序

mongos>db.col.find({},{"age":1,_id:0}).sort({"age":-1});

升序

mongos>db.col.find({},{"age":1,_id:0}).sort({"age":1});

12.创建索引

mongos>db.col.ensureIndex({"id":1})

感谢各位的阅读,以上就是“MongoDB的安装及常用操作命令”的内容了,经过本文的学习后,相信大家对MongoDB的安装及常用操作命令这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!