0

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

4

1 回答 1

0

没有办法做你所要求的。通常,默认索引创建跟踪插入顺序。当你添加数据时,它会在最后。如果您需要维护某个顺序,您可以创建一个新属性来处理该情况,并使用对该属性的排序进行检索。

如果你真的想插入一个特定的 id,你需要添加一些逻辑来级联文档。逻辑将如下所示:

  1. 插入一条与最后一条记录相同的新记录。
  2. 然后,倒退并将记录级联到新的开放位置
  3. 当您到达您需要的位置时停止,并使用 ID 使用您想要插入的内容更新记录。

由于您必须向下移动记录,因此性能会受到拖累。还有其他方法可以维护列表 - 这类似于在数组中间插入一条记录。类似的方法会在这里结盟。祝你好运!

于 2018-12-01T23:54:44.480 回答