如何在mongodb中维护用户可自定义的实体顺序?

Posted

技术标签:

【中文标题】如何在mongodb中维护用户可自定义的实体顺序?【英文标题】:How to maintain user customizable order of entities in mongodb? 【发布时间】:2017-09-04 12:17:05 【问题描述】:

假设我们有用户提醒列表-

提醒1 提醒2 提醒3

用户可以在 UI 上使用拖放来更改列表的顺序。例如,用户拖动提醒 3 并放置在提醒 1 的位置。所以现在甚至在用户刷新之后,列表应该是 -

提醒3 提醒1 提醒2

如何在 mongodb 中有效地实现这一点? (我将 NodeJS 与 Express 和 Mongoose JS 一起使用)

【问题讨论】:

这个列表是一个数组吗?或不同对象的数量? 这可以帮助***.com/questions/35810951/… @AsifSaeed 这不是数组,它们是 mongodb 集合中的文档。 【参考方案1】:

您可以为每个应该唯一的提醒使用sorting_id 之类的东西,并在有人通过拖动更改顺序时使用数据库中的 nodejs 更新它,并且在搜索时,只需按 sort_id 对其进行排序

【讨论】:

我想到了这个,但是如果列表是查询的结果如何处理。例如,如果用户查询一些文档,例如 - Reminder 2 (order_id =2) Reminder 10 (order_id=10) Reminder 198 (order_id=198) 并将 Reminder 198 移动到 Reminder 10 位置,我可能需要将 Reminder 11 的所有 order_id 更新为 Reminder 198 以 1 递增。 只是交换 id,如果你只显示 10 和 198 而他正在交换,这并不一定意味着他将 198 id 放在 10 和 10 id 放在 11 id,也许他是只是改变它们,也许如果我们能真正定义整体的行为,就会很容易找到解决方案

以上是关于如何在mongodb中维护用户可自定义的实体顺序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MongoDB 中引用其他数据库中的实体? [复制]

如何在 MongoDB 中引用其他数据库中的实体? [复制]

我的 Discord 机器人的可自定义欢迎频道功能不起作用,它看起来像是 MongoDB 的问题,但我无法弄清楚

如何在 MongoDB 中维护有序对象

如何在 Elixir 或 SQLAlchemy 中为与其自身的多对一关系创建可自定义的“排序依据”?

多个线程实现顺序打印数据,(可自定义线程一次打印数量和总数量)