如何查看或修改 MongoDB 集合上设置的排序规则选项?
How to view or modify collation options set on a MongoDB collection?
如何修改我们在创建集合时设置的选项?我们如何查看已设置的选项?
例如,如果我们看到排序规则选项,我会创建一个这样的集合:
db.createCollection("words", {collation : {locale :"es", strength : 2}});
并添加几个文件:
db.words.insertOne({text : "Résumé"});
db.words.insertOne({text : "Resume"});
db.words.insertOne({text : "résumé"});
db.words.insertOne({text : "resume"});
如何将此集合的排序规则强度更改为 3?我如何看到变化?我没有在 db
对象或 db.words
对象或文档中看到任何可用的相关函数!
How do you modify the options that we set on a collection at the time of creation?
从 MongoDB 3.6 开始,默认排序规则选项只能在创建集合时指定。不支持修改默认排序规则选项。
但是,如果您想使用默认值以外的排序规则选项,您可以为 operations that support collation 指定一个 collation
文档,例如 find()
和 aggregate()
。
how do we view the options already set?
有几种方法。
db.getCollectionInfos()
shell 帮助程序显示其他集合信息,例如排序规则默认值:
db.getCollectionInfos({name:'words'})[0].options.collation
{
"locale": "es",
"caseLevel": false,
"caseFirst": "off",
"strength": 2,
"numericOrdering": false,
"alternate": "non-ignorable",
"maxVariable": "punct",
"normalization": false,
"backwards": false,
"version": "57.1"
}
您还可以检查查询计划器使用的默认排序规则选项:
> db.words.find().explain().queryPlanner.collation
{
"locale": "es",
"caseLevel": false,
"caseFirst": "off",
"strength": 2,
"numericOrdering": false,
"alternate": "non-ignorable",
"maxVariable": "punct",
"normalization": false,
"backwards": false,
"version": "57.1"
}
修改默认排序规则目前正在开发中:
如何修改我们在创建集合时设置的选项?我们如何查看已设置的选项?
例如,如果我们看到排序规则选项,我会创建一个这样的集合:
db.createCollection("words", {collation : {locale :"es", strength : 2}});
并添加几个文件:
db.words.insertOne({text : "Résumé"});
db.words.insertOne({text : "Resume"});
db.words.insertOne({text : "résumé"});
db.words.insertOne({text : "resume"});
如何将此集合的排序规则强度更改为 3?我如何看到变化?我没有在 db
对象或 db.words
对象或文档中看到任何可用的相关函数!
How do you modify the options that we set on a collection at the time of creation?
从 MongoDB 3.6 开始,默认排序规则选项只能在创建集合时指定。不支持修改默认排序规则选项。
但是,如果您想使用默认值以外的排序规则选项,您可以为 operations that support collation 指定一个 collation
文档,例如 find()
和 aggregate()
。
how do we view the options already set?
有几种方法。
db.getCollectionInfos()
shell 帮助程序显示其他集合信息,例如排序规则默认值:
db.getCollectionInfos({name:'words'})[0].options.collation
{
"locale": "es",
"caseLevel": false,
"caseFirst": "off",
"strength": 2,
"numericOrdering": false,
"alternate": "non-ignorable",
"maxVariable": "punct",
"normalization": false,
"backwards": false,
"version": "57.1"
}
您还可以检查查询计划器使用的默认排序规则选项:
> db.words.find().explain().queryPlanner.collation
{
"locale": "es",
"caseLevel": false,
"caseFirst": "off",
"strength": 2,
"numericOrdering": false,
"alternate": "non-ignorable",
"maxVariable": "punct",
"normalization": false,
"backwards": false,
"version": "57.1"
}
修改默认排序规则目前正在开发中: