mongodb - 将默认排序规则添加到现有的 mongodb 集合

标签 mongodb

我正在尝试向我的 mongodb 集合添加默认排序规则。使用排序规则创建新集合很简单:

db.createCollection(name, {collation:{locale:"en",strength:1}})

不幸的是,我浏览了文档并没有看到任何 db.updateCollection 函数。我应该如何在不破坏和重新创建新集合中的所有文档的情况下添加排序规则?

最佳答案

还有另一个选项可以满足我的生产需求:在集合上执行 mongodump

mongodump --host hostname --port 32017 --username usr --password pwd --out c:\backup --db my_database --collection my_collection

这将生成两个文件,其中一个名为 my_collection.metadata.json。打开这个文件,根据MongoDB docs修改options属性.

{
    "options": {
        "collation": {
            "locale": "en",
            "strength": 1
        }       
    }
    ...
}

然后使用 mongorestore

恢复
mongorestore --host hostname --port 32017 --username usr --password pwd --db contactstore c:\backup\my_database --drop

从那时起,您创建的任何索引都将默认使用该特定排序规则。不幸的是,这需要一个停机时间窗口,因此请确保获得一个。

关于mongodb - 将默认排序规则添加到现有的 mongodb 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44682160/

相关文章:

mongodb - MongoLab 通过 CURL/Golang-http 使用 HTTP PUT 删除多个集合不起作用

javascript - 使用angularjs提取字节数组中的二进制文件内容

MongoDB 查询数组中的对象

MongoDB聚合: Group all records into a single result

node.js - 一对多 Mongoose 关系 - 在哪里存储引用

javascript - 如何在 MongoDB 中的一个数组中搜索另一个数组中的项目?

javascript - 从多个数组中返回最新的排序日期

node.js - 使用 node.js 进行 MongoDB Atlas 用户身份验证

javascript - Mongodb 聚合基于过去的日期

node.js - 并且偶尔会在 shell 和 Node native 驱动程序上产生错误的结果