PouchDB / CouchDB索引的自定义unicode排序顺序(Mango Query)

时间:2018-03-19 10:20:17

标签: sorting unicode couchdb pouchdb couchdb-mango

我正在使用PouchDB(带有Cloudant远程数据库)在字典Web应用程序中拥有本地数据库。

我需要一个带有自定义Pashto字母顺序的索引(使用Arabic unicode letters)。

带有localdb.find的{​​{1}}查询(按字母顺序搜索部分字词)因普拉托字母表中的不规则Unicode字符而无效。

是否可以根据Pashto alphabet为索引创建自定义排序?

请参阅Mango Query Language

1 个答案:

答案 0 :(得分:0)

this reference中提到:

  

视图结果最重要的特征是它按键排序。

假设您有一个数据库,其中包含每个文档中包含array字段的文档。因此,示例文档如下所示:

unicodeString

现在您可以使用这样的地图函数来创建CouchDB视图:

{
    "_id":"2018-01-30-18-04-11",
    "_rev":"AE19EBC7654",

    "title":"Hello elephant",
    "unicodeString":"שלום פיל",
}

上面的视图根据function(doc) { emit(doc.unicodeString, doc.title); // doc.unicodeString is key // doc.title is value } key对数据库内的所有文档进行排序。因此,如果您使用上述视图,您的所有文档都将根据文档中的Unicode字符串进行排序。

如果您在数据库中有3个文档,当您查询上述视图时,您会收到这样的响应结果,其中doc.unicodeString数组根据每个rows中的key进行排序:

row