Algorithm 如何保持数据库中记录的顺序

Algorithm 如何保持数据库中记录的顺序,algorithm,mongodb,Algorithm,Mongodb,我正在开发一个应用程序,其中记录按一定顺序显示。用户可以根据自己的意愿对记录进行重新排序,我需要存储这些记录。 我对每个记录都有一个订单号,但当它们对记录进行重新排序时,这会影响到该记录之后的所有记录,这可能是非常昂贵的数据库操作 有没有一种聪明的方法来存储记录的订单号,这样它就不会影响许多其他记录?我已经编写了一个web应用程序,具有类似的高级要求。我在文档中添加了两个字段,其中包含有关用户可排序列表的元数据: SortOrderVersion: integer SortOrder: arra

我正在开发一个应用程序,其中记录按一定顺序显示。用户可以根据自己的意愿对记录进行重新排序,我需要存储这些记录。 我对每个记录都有一个订单号,但当它们对记录进行重新排序时,这会影响到该记录之后的所有记录,这可能是非常昂贵的数据库操作


有没有一种聪明的方法来存储记录的订单号,这样它就不会影响许多其他记录?

我已经编写了一个web应用程序,具有类似的高级要求。我在文档中添加了两个字段,其中包含有关用户可排序列表的元数据:

SortOrderVersion: integer
SortOrder: array of _id for documents 
SortOrder
只包含每个文档的_id的有序数组。该列表是由客户机操作的。第二个字段,
SortOrderVersion
用于同时优化保护多个客户端的更改。如果发送的版本与通过
findanddomify
存储的版本匹配,则允许进行更新,并增加该数字以防止其他客户端进行进一步更改。(作为奖励,这些更改通过web套接字连接推送到其他客户端)

这样做时,服务器将根据列表进行排序,然后在缓存时将列表返回给客户端,并且不会频繁更改。我本来可以把繁忙的分拣工作推给客户的,我只是觉得没有必要

我曾考虑将文档作为子文档存储在单个文档中的排序数组中,但在我的情况下,它们有太多的机会让多个用户编辑子文档的详细信息,这会使更新和重新排序变得非常复杂


虽然我在这个web应用程序中不需要它,但通过独立存储排序顺序,我可以扩展应用程序,以方便地按用户进行排序

我取决于您的用例,这里没有完全解释,但嵌入式阵列可能适合您的用途。所以这个问题需要一些进一步的示例信息才能得到一个好的答案。@NeilLunn您能详细介绍一下嵌入式阵列解决方案吗?我认为您的问题中还没有足够的信息来说明哪种解决方案是最好的。因此,请您详细说明您的问题,否则,您只能听取意见,而这些意见并不是真正的答案。允许用户添加在UI上仅对他们可见的记录,第一次记录按时间顺序出现-如果用户重新排序记录(例如,将最后一条记录移到顶部,通过UI拖放)-需要保存到数据库中,以便用户下次登录时-她可以按照定义的顺序查看记录。此处的注释不够。展示一个工作示例,说明您试图在问题中实现的目标。