资讯专栏INFORMATION COLUMN

【MongoDB】mongodb安装及常用操作命令

fish / 600人阅读

摘要:二中常用命令显示数据库列表显示当前数据库中的集合类似关系数据库中的表显示用户切换当前数据库,如果数据库不存在则创建数据库。注意操作同时可以创建数据库,如果一个不存在的数据库名,则执行后,会创建对应数据库。如果指定字段,则会更新该的数据。

.......................................................................................
环境:centos7
Ip: 172.16.200.48
..............................................................................................

一、Mongodb的安装与启动 1、mongo的安装 步骤 1、下载:

</>复制代码

  1. # cd /usr/local/src/
  2. # wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.3.tgz
  3. # tar -zxvf mongodb-linux-x86_64-rhel70-3.4.3.tgz
步骤 2、配置环境变量

</>复制代码

  1. # vim /etc/profile
  2. 添加一下内容:
  3. export MONGODB_HOME=/usr/local/mongodb
  4. export PATH=$MONGODB_HOME/bin:$PATH
步骤 3、查看mongodb版本信息 

</>复制代码

  1. # mongod -v

安装成功。

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

</>复制代码

  1. # mkdir -p /data/mongodb
  2. # mkdir -p /data/mongodb/log
  3. # touch /data/logs/mongodb/mongodb.log
步骤 5、添加配置文件

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

</>复制代码

  1. # vim /etc/mongodb.conf
  2. 配置文件参数说明:
  3. mongodb的参数说明:
  4. --dbpath 数据库路径(数据文件)
  5. --logpath 日志文件路径
  6. --master 指定为主机器
  7. --slave 指定为从机器
  8. 
--source 指定主机器的IP地址
  9. --pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。
  10. --logappend 日志文件末尾添加
  11. --port 启用端口号
  12. 
--fork 在后台运行
  13. --only 指定只复制哪一个数据库
  14. --slavedelay 指从复制检测的时间间隔
  15. --auth 是否需要验证权限登录(用户名和密码)
  16. 配置文件内容:
  17. dbpath=/data/mongodb
  18. logpath=/data/logs/mongodb/mongodb.log
  19. logappend=true
  20. port=27017
  21. fork=true
  22. ##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. switched to db admin    
  3. > db.shutdownServer()    
  4. server should be down...

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

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

</>复制代码

  1. # cd /usr/local/mongodb/bin
  2. # ./mongo
步骤 8、创建数据库

</>复制代码

  1. > use test 创建数据库test

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

二、Mongo中常用命令

</>复制代码

  1. [root@snails ~]# ps -ef|grep mongod
  2. [root@snails ~]# mongo --host=127.0.0.1 --port=27017
  3. MongoDB shell version: 3.2.7
  4. connecting to: 127.0.0.1:27017/test
  5. > show dbs #显示数据库列表
  6. > show collections #显示当前数据库中的集合(类似关系数据库中的表)
  7. > show users #显示用户
  8. > use #切换当前数据库,如果数据库不存在则创建数据库。
  9. > db.help() #显示数据库操作命令,里面有很多的命令
  10. > db.foo.help() #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
  11. > db.foo.find() #对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
  12. > db.foo.find( { a : 1 } ) #对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
  13. > db.dropDatabase() #删除当前使用数据库
  14. > db.cloneDatabase("127.0.0.1") #将指定机器上的数据库的数据克隆到当前数据库
  15. > db.copyDatabase("mydb", "temp", "127.0.0.1") #将本机的mydb的数据复制到temp数据库中
  16. > db.repairDatabase() #修复当前数据库
  17. > db.getName() #查看当前使用的数据库,也可以直接用db
  18. > db.stats() #显示当前db状态
  19. > db.version() #当前db版本
  20. > db.getMongo() #查看当前db的链接机器地址
  21. > 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. #进入数据库mongos> use testdb;
  9. mongos> show collections;
  10. mycollection
  11. mongosdb.mycollection.drop();
  12. true
  13. mongos> show collections;
7. 插入文档

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

</>复制代码

  1. db.COLLECTION_NAME.insert(document)

插入文档

</>复制代码

  1. > use test
  2. switched to db test
  3. > db.col.insert({name:"morris",age:22})
  4. WriteResult({ "nInserted" : 1 })
  5. 以上实例中col是集合名,如果该集合不在该数据库中,MongoDB会自动创建该集合并插入文档。
  6. 查看已插入的文档
  7. > db.col.find()
  8. { "_id" : ObjectId("56e12c22de2a8692a3099065"), "name" : "morris", "age" : 22 }
  9. 在我们插入文档的时候,如果我们没有为该文档指定_id,mongodb将会为我们的文档自动创建一个不会重复的ObjectId

有条件的查询已插入文档

</>复制代码

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

定义变量插入文档

</>复制代码

  1. > doc={name:"jack",age:20}
  2. { "name" : "jack", "age" : 20 }
  3. > db.col.insert(doc)
  4. WriteResult({ "nInserted" : 1 })
  5. > db.col.find()
  6. { "_id" : ObjectId("56e12c22de2a8692a3099065"), "name" : "morris", "age" : 22 }
  7. { "_id" : ObjectId("56e12f49de2a8692a3099068"), "name" : "jack", "age" : 20 }
  8. 插入文档也可以使用db.col.save(document)命令。如果不指定_id 字段save()方法类似于insert()方法。如果指定_id字段,则会更新该_id的数据。

插入多个文档

</>复制代码

  1. 如果我们在insert中传入了多个文档,mongodb只会插入第一个文档,下面的代码中只插入了第一个文档。
  2. > db.user.find()
  3. > db.user.insert({name:"user1"},{name:"user2"}) 
  4. > db.user.find()
  5. { "_id" : ObjectId("519cd757f83727a8baf0a8e2"), "name" : "user1" }
  6. 如果我们想一次插入多个文档,可以将多个文档组合成一个数组,这样就能够插入成功了,例子代码如下:
  7. > db.user.find()
  8. > db.user.insert([{name:"user1"},{name:"user2"}])
  9. > db.user.find()
  10. { "_id" : ObjectId("519cd842f83727a8baf0a8e3"), "name" : "user1" }
  11. { "_id" : ObjectId("519cd842f83727a8baf0a8e4"), "name" : "user2" }
  12.  我们可以使用javascript批量插入数据。由于mongodb shell简单的说就是一个javascript shell所以javascript代码可以在mongodb shell中运行,所以我们可以使用javascript代码进行批量插入数据,例如我们插入10个用户到user集合中,代码如下:
  13. > for(i=1;i<=10;i++){
  14. ... db.user.insert({_id:i,name:"user"+i,age:10+i})
  15. ... }
8.更新文档

</>复制代码

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

</>复制代码

  1. #删除文档内容
  2. mongos> db.col.remove({"name":"antian"});
  3. #删除集合: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});
  2. 升序 mongos> db.col.find({},{"age":1,_id:0}).sort({"age":1});
12.创建索引

</>复制代码

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19098.html

相关文章

  • Mac下安装MongoDB 使用教程

    摘要:浏览器下输入如果能正常显示数据库的信息,则表示启动成功。集合名可以是满足下列条件的条件集合名不能是空字符串。方法结果显示在一个格式化的方式,可以使用方法方法要限制中的记录,需要使用方法。命令的基本语法如下恢复数据恢复备份数据使用的命令。 概念 MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便。 MongoDB 工作在收集和文件的概念。 什么是No...

    wenhai.he 评论0 收藏0
  • Mac下安装MongoDB 使用教程

    摘要:浏览器下输入如果能正常显示数据库的信息,则表示启动成功。集合名可以是满足下列条件的条件集合名不能是空字符串。方法结果显示在一个格式化的方式,可以使用方法方法要限制中的记录,需要使用方法。命令的基本语法如下恢复数据恢复备份数据使用的命令。 概念 MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便。 MongoDB 工作在收集和文件的概念。 什么是No...

    A Loity 评论0 收藏0
  • MongoDB 入门教程

    摘要:可选,抛出异常的级别。示例教程更新一条数据标题。命令行下执行进入数据库进入库可查看当前库用户列表执行新建用户设置账户密码,并指定级别。重启服务重新进入数据库,发现命令无法执行,报权限不足错误。命令可以正常执行。 1.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB ...

    Vicky 评论0 收藏0

发表评论

0条评论

fish

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<