MongoDB常用操作

一、批量替换操作

在MongoDB中,若需对集合内文档的特定字段值进行批量替换,可使用以下JavaScript代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
db.getCollection("xxx").find().forEach(
function (item) {
var arr = item.Category;
arr = arr.replace("xxx", "xxxx");
db.getCollection('xxxx').update({
"_id": item._id
}, {
$set: {
"Category": arr
}
})
}
)

上述代码实现了对xxx集合中每个文档的Category字段进行值替换。具体步骤如下:

  1. db.getCollection("xxx").find():从xxx集合中查询所有文档。
  2. .forEach:对查询出的每个文档执行回调函数。
  3. 在回调函数中,先获取文档的Category字段值赋给arr变量。
  4. 使用replace方法将arr中的xxxx替换为xxxxx
  5. 最后通过db.getCollection('xxxx').update方法,根据文档的_id,使用$set操作符更新Category字段为替换后的值。

二、导入数据到MongoDB

可使用mongorestore命令将备份数据导入到MongoDB中,常见命令示例如下:

1
mongorestore -h Node1  -u xxx -p 123456 -d xxx --gzip  --drop  /work/sql_backup/xxx
  • -h Node1:指定MongoDB服务器主机名为Node1。也可指定IP地址和端口,如-h 127.0.0.1:27017
  • -u dguser1:指定用户名xxx
  • -p 123456:指定用户密码123456
  • -d dgcloud:指定要导入数据的目标数据库为xxx
  • --gzip:表示备份数据是经过gzip压缩的,恢复时需解压。
  • --drop:在导入数据前,先删除目标数据库中的现有集合,以确保数据的一致性。
  • /work/sql_backup/xxx:指定备份数据的目录路径。

另一个示例:

1
mongorestore -h 127.0.0.1:27017 --authenticationDatabase admin  -u root -p password -d xxx   --drop  /home/xxx

此命令中,--authenticationDatabase admin表示认证数据库为admin,即使用admin数据库进行用户认证。

三、登录MongoDB

使用mongo命令登录MongoDB,示例如下:

1
mongo -u xxx -p --authenticationDatabase xxx --host Node1
  • -u xxx:指定登录用户名xxx
  • -p:提示输入密码(这里密码未直接显示在命令中,以增强安全性)。
  • --authenticationDatabase xxx:指定认证数据库为xxx
  • --host Node1:指定要连接的MongoDB服务器主机名为Node1,同样可指定IP地址。

四、从MongoDB导出数据

使用mongodump命令可将MongoDB中的数据导出为备份文件,示例如下:

1
mongodump -uroot -h 127.0.0.1:27017 --authenticationDatabase admin -d xxx -o /home/
  • -uroot:指定用户名root
  • -h 127.0.0.1:27017:指定要连接的MongoDB服务器的IP地址和端口。
  • --authenticationDatabase admin:指定认证数据库为admin
  • -d xxx:指定要导出数据的源数据库为dgcloud
  • -o /home/:指定导出数据的存储目录为/home/,备份数据将存储在该目录下以数据库名命名的文件夹中。

MongoDB常用操作
https://119291.xyz/posts/2025-04-15.common-operations-of-mongodb/
作者
ww
发布于
2025年4月15日
许可协议