mongodb中对字符串按照数值来排序【collation】

环境

mongodb:3.4
工具:Robo 3T 1.1

前言

最近在优化索引时,又重新看了下,mongodb的一些新特性;
mongodb 3.4 还是提供一些非常好用的新功能;
其中之一就是今天要讲的,对字符串按照数值来排序;

collation

单纯的字典翻译是整理的意思;

但是这里要翻译成:排序规则

假设我们有这样的数据:

这里写图片描述

注意

我这里只是为了说明字符串按照数值来排序这个问题,实际情况,股票代码,肯定不是按照数值大小来排序的,本身就是按照字符串大小来排序的!

字符串按数值大小排序

执行下面的语句

db.stock.find({}).collation({"locale": "zh", numericOrdering:true}).sort({stock_code:1})

效果如下:

这里写图片描述

可以看出,现在已经是按照数值大小来排序的!

语法

语法规则不详细讲,因为我用的不多!

Collation包含的字段:

{
   locale: <string>,
   caseLevel: <boolean>,
   caseFirst: <string>,
   strength: <int>,
   numericOrdering: <boolean>,
   alternate: <string>,
   maxVariable: <string>,
   backwards: <boolean>
}

说明

  1. 当使用collation时,字段locale必须要有值。
  2. numericOrdering决定字符串是否按照数值来排序,默认为false
  3. caseFirst决定大小写谁排在前头,“upper”大写排在小写前头,“lower”小写排在大写的前头。

其他字段没用过!

支持 Collation的操作

参考官网:
operations-that-support-collation

参考地址:

https://docs.mongodb.com/manual/reference/collation

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山鬼谣me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值