1. docker 容器创建用户命令

1
2
3
4
5
6
7
8
9
10
docker exec -it mongo-container-name mongosh;

use admin;

# 创建管理员账户
db.createUser({
user: 'admin1',
pwd: 'admin',
roles: [{ role: 'userAdminAnyDatabase', db: 'admin' }]
})

创建普通用户时:则先切换到对应数据库,db填对应名称

2. docker 导入导出数据

2.1 导出指定集合

若容器部署,进入容器中,不需要进入特定目录,直接执行

1
mongoexport --db yourDatabaseName --collection yourCollectionName --out yourOutputFileName.json
  • --authenticationDatabase: 验证用户名密码所需的数据库(默认为admin)
  • -u 用户名
  • -p 密码
  • -d 数据库
  • -c 集合
  • --db 指定数据库名称。
  • --collection 指定集合名称。
  • --out 指定输出文件的名称。
  • 默认也可在容器 /data/db目录下执行

举例

1
2
3
4
>mongoexport --db iPaaS_Dev --collection AppMenuItemConfig --out AppMenuItemConfig.json

>mongoexport -h 127.0.0.1 --authenticationDatabase admin -u dp001 -p dp01pd!02
>-d dmp -c tm -o dmp-tm.json

2.2 导出整个集合

1
mongodump --db yourDatabaseName --out yourOutputDirectory
  • --db 后面跟着的是要导出的数据库名称。
  • --out 后面跟着的是你希望存储导出文件的目录路径。

举例:

1
>mongodump --db yourDatabaseName --out yourOutputDirectory

导出的是非Array, 需手动加入前后 “[“、”]”, 并在各个entry之间加入 “,” 另外可能多出 “_id”:{“$oid”:”66de6dd2ad52db6cb33d39b8”}” 属性,根据需要去除

3. 常用命令

  • 查询P_AppMenuItemConfig集合中menuName字段值为概览详细的数据

    1
    db.P_AppMenuItemConfig.find({ "menuName": { "$in": ["概览"] } });
  • 插入数据

    1
    2
    3
    4
    5
    6
    db.myCollection.insertOne(
    {
    "field1": "value1",
    "field2": "value2"
    }
    );
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    db.myCollection.insertMany([
    {
    "field1": "value1",
    "field2": "value2"
    },
    {
    "field1": "value3",
    "field2": "value4"
    },
    // ... 更多文档
    ]);
  • 多个查询条件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    db.P_AppMenuItemConfig.find(
    {
    $and:
    [
    { "menuName": { "$in": ["请求数据转换","响应数据转换"] } },
    { "creator": { "$in": ["admin"] } }
    ]
    });

    // 不包含使用: $nin
  • 更新数据

    1
    2
    3
    4
    db.P_CategoryType.updateMany(
    { creatorName : "管理员" },
    { $set: { creatorName: "管理员1" } }
    )
  • 删除数据

    1
    2
    db.collection.deleteMany({ _id: { $in: [1, 2, 3] } });
    db.collection.deleteMany({ _id: { $in: [1, 2, 3] } });