mongodb 中 ListField 的 自定义顺序?

2021-04-10 18:13:25 +08:00
 among
class Test_TC(Document):
    meta = {'collection': 'Test_TC', 'strict': False}
    name = StringField()

class Test_TS(Document):
    meta = {'collection': 'Test_TS', 'strict': False}
    name = StringField()
    # 列表
    tc_list = ListField(ReferenceField(Test_TC, reverse_delete_rule=PULL))
    

在 tc_list 中存储的是一个 list,如何来设定里面的 list 的顺序。

原始需求是,在 Test_TS 存储 一个自定义顺序的 list,关联到 Test_TC 。 开始的时候,使用 push 可以有指定到 index.

但是后续会有在前端进行 拖拉的动作,调整顺序,如何实现这个顺序调整。

1343 次点击
所在节点    MongoDB
3 条回复
maocat
2021-04-10 19:47:07 +08:00
我们的做法,前端把 id 排好顺序,后端重新写入 List
felixin
2021-04-10 20:09:56 +08:00
加个 position:int,拖动改位置,前端展示前排序
ch2
2021-04-10 20:56:19 +08:00
拖动排序,一般是给每个 key 一个初始的浮点数优先级 pri 保证递增或者递减,把 E 拖到 AB 之间就是更新 preE=(priA+priB)/2,而不是每次把一个 list 传过去再返回来存到数据库里

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/769750

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX