如何为 MongoDB collection 存储混合内容设置排序规则?

How to set up collation for MongoDB collection storing mixed content?

我正在使用 MongoDB 4.4 企业版。

我有一个 collection 存储混合语言内容。更准确地说,一些字段包含英文和阿拉伯文文本,这些字段是描述或名称或标题等。

我的问题是我应该如何正确设置排序规则?我的意思是,我知道我可以在创建时为每个 collection 指定排序规则,但那是针对一个特定的语言环境,例如“ar”或“en”。但我两者都需要!

我的理解是,在这种情况下,我需要在操作层面上这样做,所以它是这样的:

db.items.find({"field": "value"}).sort({"field" : -1}).collation({"locale": "ar"})

但是,这需要进行很多更改。难道没有更好的办法吗?我能否以某种方式让所有 collection 都“全局”支持阿拉伯语和英语?

编辑:

只是一些说明。我只需要这个:

这可能根本不需要特殊的排序规则设置,对吧?我刚刚对其进行了测试,它似乎适用于默认排序规则。

很遗憾,这不支持,来自 docs

You cannot specify multiple collations for an operation. For example, you cannot specify different collations per field, or if performing a find with a sort, you cannot use one collation for the find and another for the sort.

对此并没有真正的“一刀切”,具体取决于您的需要。我个人会做的是预处理数据以满足我的需要。