---
title: 运行MongoDB
description: "以下内容是关于运行、配置、启动、登录和验证MongoDB数据库的详细步骤。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdbs/ecosystemEnable/MongoDB/openmind_mangodb3613_03_0027.html
sourcePath: /source/zh/kunpengdbs/ecosystemEnable/MongoDB/openmind_mangodb3613_03_0027.html
indexId: 25567e723e7ce1367965e7869308fcddcfb992d14722a22d3195a48be3d41d8079
---
# 运行MongoDB

以下内容是关于运行、配置、启动、登录和验证MongoDB数据库的详细步骤。

1. 查看MongoDB版本。
  1 2 3 cd ~ find / -name mongod /usr/local/mongo/bin/mongod --version

2. 修改MongoDB的配置文件。

  a. 删除并新建“/etc/mongodb.cnf”文件。
    1 2 rm -f /etc/mongodb.cnf vim /etc/mongodb.cnf

  b. 按“i”进入编辑模式，添加如下内容:
    1 2 3 4 5 6 7 dbpath=/data/mongo logpath=/data/mongo/mongo.log logappend=true port=27017 fork=true auth=false bind_ip=0.0.0.0

    配置文件参数说明： dbpath代表数据文件存放目录。 logpath代表日志文件存放目录。 logappend=true代表日志以追加的形式添加。 port代表端口号。 fork=true代表以守护程序的方式启用，即在后台运行。 auth=false代表连接数据库不需要验证用户名和密码。 bind_ip代表可以访问的地址。127.0.0.1表示自己访问，0.0.0.0 表示所有人都能访问。

  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
3. 启动MongoDB数据库。

  a. 使用配置文件启动MongoDB数据库。
    1 nohup /usr/local/mongo/bin/mongod -f /etc/mongodb.cnf &

  b. 确认MongoDB数据库进程是否正常启动。
    1 ps -ef | grep mongod

    可以看到数据库进程ID为36249且已正常启动。

  c. 查看MongoDB数据库的监测端口。
    1 netstat -anpt

    在本例中MongoDB数据库的监测端口为27017。

4. 登录MongoDB数据库并验证数据库是否可以正常运行。

  a. 本地登录MongoDB数据库。
    1 2 cd /usr/local/mongo/bin ./mongo

    查看登录参数。 1 2 /usr/local/mongo/bin/mongo --h /usr/local/mongo/bin/mongo --help

  b. 查看当前存在的数据库。
    1 show dbs

  c. 创建数据库。
    1 2 use mongotest-database show dbs

    使用use DATABASE_NAME创建数据库，如果数据库不存在，则创建数据库，否则切换到指定数据库。 可以看到刚才创建的数据库mongotest-database并不在数据库的列表中，要显示新增的数据库，需要向mongotest-database数据库插入一些数据。

  d. 创建集合。
    1 2 3 use mongotest-database show collections db.createCollection("mongo_test")

    如果要查看已有集合，可以使用show collections或show tables命令。 1 2 show collections show tables

  e. 插入文档。
    1 2 3 4 5 6 7 db.mongo_test.insert({title: 'MongoDB 教程', ... description: 'MongoDB 是一个 Nosql 数据库', ... by: 'xx教程', ... url: 'http://www.xxxxxx.com', ... tags: ['mongodb', 'database', 'NoSQL'], ... likes: 100 ... })

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

    查看已插入文档：

    1 db.mongo_test.find()

  f. 更新文档。
    通过update（）方法来更新文档标题（title）。

    1 2 db.mongo_test.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}}) db.mongo_test.find()

  g. 删除title为“MongoDB”的文档。
    1 2 db.mongo_test.remove({'title':'MongoDB'}) db.mongo_test.find()

  h. 查看并创建索引。
    1 2 3 db.mongo_test.getIndexes() db.mongo_test.createIndex({"title_test":1}) db.mongo_test.getIndexes()

  i. 删除    4.h
新增的索引“title_test_1”。
    1 db.mongo_test.dropIndex("title_test_1")

  j. 删除集合。
    1 2 3 use mongotest-database show collections db.mongo_test.drop()

  k. 删除数据库。
    1 2 3 use mongotest-database show dbs db.dropDatabase()

5. 退出数据库。
  1 exit
