如何压缩 IBM Cloud Databases for MongoDB 部署中的集合?

问题描述 投票:0回答:1

我部署了 IBM Cloud Databases for MongoDB。我想压缩数据库中的集合以节省磁盘空间并提高性能。我怎样才能实现这一目标?

database mongodb ibm-cloud
1个回答
0
投票

您可以使用 Mongo shell CLI 来完成此操作。

要使用 Mongo shell 进行连接,您需要:

  • admin
    用户的密码
  • CA 证书,下载并作为文件存储在本地
  • 一组主机名和端口

请参阅文档

中有关如何获取这些内容的说明

连接字符串包含组成高可用集群的 3 个节点的列表。您将需要单独定位每个节点并压缩每个节点上的集合副本。

要连接到节点,请使用以下 Mongo shell 命令:

mongosh -u admin -p <your_password> --ssl --sslCAFile path/to/file  --authenticationDatabase admin --host <hostname:port>

# Current Mongosh Log ID:   xxxx
#Connecting to:     mongodb://<credentials>@hostname:port/?#directConnection=true&authSource=admin&tls=true&tlsCAFile=file&appName=mongosh+2.1.1
#For mongosh info see: https://docs.mongodb.com/mongodb-shell/
#Enterprise replset [direct: secondary] test>

现在定位您的集合所在的数据库:

use mydb

最后,对要压缩的每个集合发出

compact
命令:

db.runCommand({compact:"mycollection"})

请注意,如果您尝试压缩当前主节点中的集合,此命令将失败。如果您想继续,可以在命令中添加

force
标志:

db.runCommand({compact:"catalog", force:true})

MongoDB 文档表明这在压缩时不会阻止 CRUD 操作。

© www.soinside.com 2019 - 2024. All rights reserved.