gpt4 book ai didi

mongodb - 在数据库之间复制 MongoDb 索引

转载 作者:可可西里 更新时间:2023-11-01 09:09:57 24 4
gpt4 key购买 nike

我正在尝试在两个环境之间复制 mongo 索引。检查了 API 并没有找到直接的方法。所以我开始写一个连接到一个数据库的脚本,遍历集合,抓取索引,改变它们(因为 getIndexes()ensureIndex())有不同的格式) , 连接到另一个数据库,删除索引并复制新的索引。

这一切感觉有点过头了,所以我想我一定漏掉了什么。

有什么建议/好的做法吗?除了拥有索引创建策略。

干杯!

最佳答案

请在要复制索引的数据库上运行。

db.getCollectionNames().forEach(function(collection) {
indexes = db[collection].getIndexes();
indexes.forEach(function (c) {
opt = ''
ixkey = JSON.stringify(c.key, null, 1).replace(/(\r\n|\n|\r)/gm,"")
ns = c.ns.substr(c.ns.indexOf(".") + 1, c.ns.length)
for (var key in c) {
if (key != 'key' && key != 'ns' && key != 'v') {
if (opt != '') { opt+= ','}
if (c.hasOwnProperty(key)) {
if (typeof(c[key]) == "string") {
opt += (key + ': "' + c[key] + '"')
} else {
opt+= (key + ": " + c[key])
}
}
}
}
if (opt != '') { opt = '{' + opt + '}'}
print ('db.' + ns + '.ensureIndex(' + ixkey + ','+ opt + ')')
})});

关于mongodb - 在数据库之间复制 MongoDb 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19050047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com