sorting - CouchDB - 按位置对文档进行排序

标签 sorting document couchdb

在 CouchDB 中按用户定义的顺序(位置)对多个文档进行排序/排序的最佳实践是什么?

我想到的解决方案:

  • 每个文档都有一个“位置”值,从 1 到 n。 View 会发出这个值。问题:如果对一个文档进行排序,则所有其他位置更大的文档都必须更新。这可能是数百个更新。唔。
  • 每个文档都知道它是前一个文档的 _id。检索 View 后生成订单。
  • 这是一个特殊的文档,它存储了所有应该在数组中排序的文档的 _id。我们在检索 View 后再次对这个解决方案进行排序。

  • 有没有其他或更简单的解决方案?在 RDBMS 解决方案中 1. 是最佳实践,一个简单的更新查询完成了所有文档的位置更新。

    此致,
    伯恩德

    最佳答案

    您可以使用浮点值,例如介于 0.0 和 1.0 之间的位置。要将文档 A 移动到文档 B 和 C 之间,只需将其新位置设置为 (B.position + C.position) / 2.0 (即他们的位置的平均值)。

    关于sorting - CouchDB - 按位置对文档进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2419413/

    相关文章:

    meteor - 如何使用 CouchDB 作为 MeteorJS 应用程序的后端数据库,而不是默认的 MongoDB?

    javascript - 我如何按 ABC 对名称的 javascript.map 数组进行排序

    perl - 奇怪的行为

    algorithm - 计数排序不同的方法

    javascript - $(window).scrollTop() 与 $(document).scrollTop()

    java - 缓存 document() 的 Java XSLT 处理器 (Xalan) 的获取

    c++ - 按类型对 std::vector 进行排序

    swift - 对成员 'close()' 的引用不明确

    MongoDB 与 CouchDB...以及任何其他 "major players"

    javascript - couchDB designDoc 开发流程和版本控制