【问题标题】:rethinkDB getAll() changes the order of the tablerethinkDB getAll() 改变表的顺序
【发布时间】:2021-08-16 19:26:18
【问题描述】:

我开始使用 rethinkDB。 当我用getAll调用表格的元素时,不幸的是表格的顺序发生了变化,例如:[6,2,4,5] -> [2,4,5,6]

如何在不重新洗牌的情况下使用 getAll()?

function* extract(next) {
  const q = r
    .db("darwin")
    .table("roadbook")
    .filter({ date: date })

    .map((rb) => {
      return {
        //all: rb,
        missionTickets: r
          .db("darwin")
          .table("missionOrderTicket")

          .getAll(r.args(rb("missionTickets")))
          
          .coerceTo("array"),
        name: rb("missionTickets"),
        shift: rb("description").default(""),
        mateName: rb("meta")("summaries")("mateAlias").default(""),
        radio: rb("radio").default(""),
      };
    });

  return yield q.run(con, next);
}

你好佩里

【问题讨论】:

    标签: rethinkdb


    【解决方案1】:

    您不能使用getAll 来获取具有特定顺序的文档。您必须使用orderBy 函数并按字段或您定义的索引对它们进行排序。为了将orderBy 函数与索引一起使用,您必须将getAll 替换为between 作为技巧,因为getAll 无法在索引上与orderBy 链接。但这仅适用于getAll 中的单个值,而不是您的情况下的数组。

    在您拥有.getAll(r.args(rb("missionTickets"))) 的情况下,您只能按非索引键排序,或者您应该更改数据模型以使用between 函数,然后将orderBy 使用单个值而不是@ 987654332@.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-21
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多