MongoDB安装及常用操作命令

[[202858]]

环境:centos7

Ip: 172.16.200.48

………………………………………………………………………………….

一、Mongodb的安装与启动

1、mongo的安装

步骤 1、下载:

  1. # cd /usr/local/src/ 
  2.  
  3. # wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.3.tgz 
  4.  
  5. # tar -zxvf mongodb-linux-x86_64-rhel70-3.4.3.tgz  

步骤 2、配置环境变量

  1. # vim /etc/profile 

添加一下内容:

  1. export MONGODB_HOME=/usr/local/mongodb 
  2.  
  3. export PATH=$MONGODB_HOME/bin:$PATH  

步骤 3、查看mongodb版本信息

  1. # mongod -v 

安装成功。

2、mongo的启动

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

  1. # mkdir -p /data/mongodb 
  2.  
  3. # mkdir -p /data/mongodb/log 
  4.  
  5. # touch /data/logs/mongodb/mongodb.log  

步骤 5、添加配置文件

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

  1. # 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、通过配置文件启动

  1. # 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中关闭

  1. > use admin 
  2.  
  3. switched to db admin 
  4.  
  5. > db.shutdownServer() 
  6.  
  7. server should be down...  

或者mongod –shutdown

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

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

  1. # cd /usr/local/mongodb/bin 
  2.  
  3. # ./mongo  

步骤 8、创建数据库

  1. > use test 创建数据库test 

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

二、Mongo中常用命令

  1. [root@snails ~]# ps -ef|grep mongod 
  2.  
  3. [root@snails ~]# mongo --host=127.0.0.1 --port=27017 
  4.  
  5. MongoDB shell version: 3.2.7 
  6.  
  7. connecting to: 127.0.0.1:27017/test
  8. > show dbs #显示数据库列表

    > show collections #显示当前数据库中的集合(类似关系数据库中的表)

    > show users #显示用户

    > use <db name> #切换当前数据库,如果数据库不存在则创建数据库。

    > 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() 是用来从数据库中删除一个集合

  1. #创建集合 
  2. #进入数据库mongos> use test; 
  3. mongos> db.createCollection("mycollection"
  4. "ok" : 1 } 
  5. mongos> show collections;   #查看集合 
  6. mycollection 
  7.  
  8. #删除集合 
  9. #进入数据库mongos> use testdb; 
  10. mongos> show collections; 
  11. mycollection 
  12. mongos> db.mycollection.drop(); 
  13. true 
  14. mongos> show collections;  

7. 插入文档

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

  1. db.COLLECTION_NAME.insert(document) 

插入文档

  1. > use test 
  2.  
  3. switched to db test 
  4.  
  5. > db.col.insert({name:'morris',age:22}) 
  6.  
  7. WriteResult({ "nInserted" : 1 })  

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

查看已插入的文档

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

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

有条件的查询已插入文档

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

定义变量插入文档

  1. > doc={name:'jack',age:20} 
  2.  
  3. "name" : "jack""age" : 20 } 
  4.  
  5. > db.col.insert(doc) 
  6.  
  7. WriteResult({ "nInserted" : 1 }) 
  8.  
  9. > db.col.find() 
  10.  
  11. "_id" : ObjectId("56e12c22de2a8692a3099065"), "name" : "morris""age" : 22 } 
  12.  
  13. "_id" : ObjectId("56e12f49de2a8692a3099068"), "name" : "jack""age" : 20 }  

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

插入多个文档

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

  1. > db.user.find() 
  2.  
  3. > db.user.insert({name:"user1"},{name:"user2"}) 
  4.  
  5. > db.user.find() 
  6.  
  7. "_id" : ObjectId("519cd757f83727a8baf0a8e2"), "name" : "user1" }  

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

  1. > db.user.find() 
  2.  
  3. > db.user.insert([{name:"user1"},{name:"user2"}]) 
  4.  
  5. > db.user.find() 
  6.  
  7. "_id" : ObjectId("519cd842f83727a8baf0a8e3"), "name" : "user1" } 
  8.  
  9. "_id" : ObjectId("519cd842f83727a8baf0a8e4"), "name" : "user2" }  

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

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

8.更新文档

  1. #显示集合文档 
  2.  
  3. mongos> db.col.find(); 
  4.  
  5. "_id" : ObjectId("55113e5477eaee1608881c84"), "name" : "antian" } 
  6.  
  7. #更新文档 
  8.  
  9. mongos> db.col.update({"name":"antian"},{"name":"wuhan"}); 
  10.  
  11. #显示集合文档 
  12.  
  13. mongos> db.col.find(); 
  14.  
  15. "_id" : ObjectId("55113e5477eaee1608881c84"), "name" : "wuhan" }  

9.删除文档

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

10.限制记录

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

11.排序文档

降序

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

升序

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

12.创建索引

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

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/271264.html<

(0)
运维的头像运维
上一篇2025-05-08 05:05
下一篇 2025-05-08 05:07

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注