TinyDB在表行之间插入

时间:2018-12-01 22:23:12

标签: python tinydb

我发现将新数据添加到TinyDB表的唯一方法是使用table.insert()方法。但是,这会将条目追加到表的末尾,但是我想保持条目的顺序,有时我需要插入到表中间的任意索引中。没有办法做到这一点吗?

1 个答案:

答案 0 :(得分:0)

无法执行您要问的事情。通常,创建的默认索引会跟踪插入顺序。添加数据时,数据将在末尾显示。如果需要保持一定顺序,则可以创建一个处理该案例的新属性,并对该属性进行排序。

如果您确实要插入特定的ID,则需要添加一些逻辑以将文档层叠下来。逻辑流为:

  1. 插入一条新记录,该记录等于最后一条记录。
  2. 然后,向后退,然后将记录层叠到新的打开位置
  3. 在到达所需位置时停止,并使用ID使用要插入的内容更新记录。

由于必须向下移动记录,因此性能会降低。还有其他维护列表的方法-类似于在数组中间插入记录。类似的方法也会在这里结盟。祝你好运!