局域网里建设网站,wordpress横向导航菜单主题,上海环球金融中心简笔画,wordpress部分图片文章连接
整理mongodb文档:collation
看前提示
对于mongodb的collation。个人主要用的范围是在createcollection#xff0c;以及find的时候用#xff0c;所以本片介绍的时候也是这两个地方入手#xff0c;对新手个人觉得理解概念就好。不要求强制性掌握#xff0c;但是要…文章连接
整理mongodb文档:collation
看前提示
对于mongodb的collation。个人主要用的范围是在createcollection以及find的时候用所以本片介绍的时候也是这两个地方入手对新手个人觉得理解概念就好。不要求强制性掌握但是要看到的时候知道这个是什么意思。
关于Collation
先看一下官网中对于Collation的介绍 Collation allows users to specify language-specific rules for string comparison, such as rules for lettercase and accent marks. 排序规则允许用户为字符串比较指定特定于语言的规则例如大小写和重音标记的规则。 对于重音标记指的是类似德语中的“ö”这样的但我们项目比较少出现这样的因此剩下的就是大小写的考虑了。
collation的参数 locale: string, caseLevel: boolean,caseFirst: string, strength: int, numericOrdering: boolean, alternate: string, maxVariable: string, backwards: booleanlocale指的是我们所选用的地区的代码比如中国是zh美国那边就是en而当我们选用二进制的格式的时候需要设置的是’simple’.当使用’simple’的时候也就不再需要设置别的参数了。
strength总共有五个挡位当我们设置值为1跟2的时候可以理解为不比较大小写而当为345的时候可以理解为需要比较大小写。默认值是3当然实际1与23-5之间都有差距只是对我们来说差距不大。相当于越大越严格。
caseFirst大小写的问题数据的大小写谁在前谁在后当值为’upper’,大写排在小写前面当值为’lower’小写排在大写的前面。当值为’off’表示关闭。
暂时的介绍就这些其他的希望大家自己看接下来是介绍两三个例子作为实操先准备几条数据分别是
{ string: a, sort: 1 },
{ string: B, sort: 2 },
{ string: C, sort: 3 },
{ string: d, sort: 4 }接下来创建一个最基本的collection。尝试将这四个数据加进去。
对比了下查询出来的数据我们插入的时候用的是sort按照1234的顺序插入的。但是当我们用sort({string:1})查询数据的时候返回的却是先大写然后是小写。就是系统区分了大小写先大写再小写这样子我们大概可以立即为根据二进制进行排序返回了。
接着删除这个collection重新生成一个新的collection但是使用下面的指令来生成
db
.createCollection(blog,
{collation:{ locale: en, strength : 1}})接着继续重新插入数据然后依旧是上面的查询数据
可以看到两次的查询语句都一样但是出现了不同的结果这是因为我们创造collection的时候使用了不同的collation。 第一次使用的是默认的localesimple根据二进制的规则,先大写后小写。 而第二次的时候我们直接无视大小写也就出现了先a后B的情况。具体的应用场景还有很多只是这个最为经典最适合做例子罢了。
同样的道理当我们用一个既定的collation来查询一个数据的时候我们也可以使用到特定的collation来查询。使用的方法如下
db.blog.find()
.sort({string:1})
.collation({locale:zh,strength:1})最后
collation的最大作用是在让我们按照自己的规则来查询创建集合如果是做crud需要做大小写区分的时候可以考虑这个而不需要使用正则但是注意下版本一般都是支持的。 本文数据来源mongodb官网