mongodb运维知识

1) docker中运行mongodb

镜像下载

执行 docker search mongo 命令docker pull mongo

运行mongo镜像:

docker run  \

--name mongodb_server \

-p 27017:27017  \

-v /mysoft/mongodb/configdb:/data/configdb/ \

-v /mysoft/mongodb/db/:/data/db/ \

-d mongo --auth

采用admin用户进入mongodb

docker exec -it a7e5d4e4ca69 mongo admin

创建admin管理员账户

db.createUser({ user: 'admin', pwd: 'admin123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

admin 用户身份进入mongo

docker exec -it a7e5d4e4ca69 mongo admin

admin 用户 进行身份认证

db.auth("admin","admin123456");

创建 用户、密码和数据库

db.createUser({ user: 'swen', pwd: 'swen123456', roles: [ { role: "readWrite", db: "app" } ] });

admin 用户身份进入mongo

docker exec -it a7e5d4e4ca69 mongo admin

swen 进行身份认证

db.auth("swen","swen123456");

切换数据库

use app

添加数据

db.test.save({name:"zhangsan"});

查看数据库

show dbs

数据库集合(类似于表)操作命令

show collections

db.createCollection("mycol", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } )

db.mycol2.insert({"name" : "菜鸟教程"})

db.mycol2.drop()

数据库文档(类似于一行一行数据)操作命令

db.col.insert({title: 'MongoDB 教程',

    description: 'MongoDB 是一个 Nosql 数据库',

    by: '菜鸟教程',

    url: 'http://www.runoob.com',

    tags: ['mongodb', 'database', 'NoSQL'],

    likes: 100

})

db.col.find()

document=({title: 'MongoDB 教程',

    description: 'MongoDB 是一个 Nosql 数据库',

    by: '菜鸟教程',

    url: 'http://www.runoob.com',

    tags: ['mongodb', 'database', 'NoSQL'],

    likes: 100

});

db.col.insert(document)

var document = db.collection.insertOne({"a": 3})

document

{

        "acknowledged" : true,

        "insertedId" : ObjectId("571a218011a82a1d94c02333")

}

 

db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})

db.col.find().pretty()

db.col.save({

    "_id" : ObjectId("56064f89ade2f21f36b03136"),

    "title" : "MongoDB",

    "description" : "MongoDB 是一个 Nosql 数据库",

    "by" : "Runoob",

    "url" : "http://www.runoob.com",

    "tags" : [

            "mongodb",

            "NoSQL"

    ],

    "likes" : 110

})

-- pretty() 方法以格式化的方式来显示所有文档。

db.col.remove({'title':'MongoDB 教程'})

db.col.remove(DELETION_CRITERIA,1)

db.repairDatabase()

db.inventory.deleteMany({ "likes" : 110 })

db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()

2) mongodb的导入导出

一、导出工具mongoexport

Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。

可通过 mongoexport --help 命令查看具体使用方法

 

参数说明:

  • -h:指明数据库宿主机的IP
  • -u:指明数据库的用户名
  • -p:指明数据库的密码
  • -d:指明数据库的名字
  • -c:指明collection的名字
  • -f:指明要导出那些列
  • -o:指明到要导出的文件名
  • -q:指明导出数据的过滤条件

示例:

 导出goods数据库下students集合的数据

 

执行图中命令

 

bin目录下生成students.dat文件,内容如下(也可在命令行中执行 type students.dat 查看)

 

从上面的结果可以看出,我们在导出数据时没有显示指定导出样式 ,默认导出了JSON格式的数据。实际情况下常常需要导出csv格式的数据,命令如下

mongoexport -d goods -c students --csv -f classid,name,age -o students_csv.dat  

参数详解:

  • -d:指明使用的库,本例中为goods
  • -c:指明要导出的集合,本例中为students
  • -o:指明要导出的文件名,本例中为students_csv.dat
  • -csv:指明要导出为csv格式
  • -f:指明需要导出classid、name、age这3列的数据

查看文件

 

二、导入工具mongoimport

Mongodb中的mongoimport工具可以把一个特定格式文件中的内容导入到指定的collection中。该工具可以导入JSON格式数据,也可以导入CSV格式数据。

可通过 mongoimport --help 命令查看具体使用方法

 

参数说明:

  • -h:指明数据库宿主机的IP
  • -u:指明数据库的用户名
  • -p:指明数据库的密码
  • -d:指明数据库的名字
  • -c:指明collection的名字
  • -f:指明要导入那些列

示例

先删除students集合数据,验证

db.students.remove({});

db.students.find();

导入之前导出的students.dat文件

 

上面演示的是导入JSON格式的文件中的内容,如果要导入CSV格式文件中的内容,则需要通过--type参数指定导入格式

mongoimport -d goods -c students --type csv --headerline --file students_csv.dat   

参数详解

  • -d:指明数据库名,本例中为goods
  • -c:指明collection名,本例中为students
  • -type:指明要导入的文件格式
  • -headerline:指明第一行是列名,不需要导入
  • -file:指明要导入的文件
  • students_csv.dat:导入的文件名
posted @ 2019-10-18 17:30  爱写bug的小猿  阅读(191)  评论(0编辑  收藏  举报