如何 select FaunaDB 查询语言的特定字段?

How to select specific fields on FaunaDB Query Language?

我找不到任何有关如何在 FaunaDB 中执行此类查询的信息。我只需要 select 文档中的特定字段,而不是所有字段。我可以使用 Select 函数 select 一个字段,如下所示:

serverClient.query(
  q.Map(
    q.Paginate(q.Documents(q.Collection('products')), {
      size: 12,
    }),
    q.Lambda('X', q.Select(['data', 'title'], q.Get(q.Var('X'))))
  )
)

忘记 selectAll 函数,它已被弃用。

实现此目的的一种方法是创建一个 return 包含所需值的索引。例如,如果使用 shell:

CreateIndex({
  name: "<name of index>",
  source: Collection("products"),
  values: [
    { field: ["data", "title"] },
    { field: ["data", "<another field name>"] }
  ]
})

然后查询该索引将 return 您在索引值中定义的字段。

Map(
  Paginate(
    Match(Index("<name of index>"))
  ),
  Lambda("product", Var("product"))
)

虽然这些示例将在 shell 中使用,但只需在每个内置函数前添加一个 q. 即可轻松在代码中使用它们。

您还可以 return 像这样的对象字面量:

serverClient.query(
  q.Map(
    q.Paginate(q.Documents(q.Collection('products')), {
      size: 12,
    }),
    q.Lambda(
     'X',
     {
       title: q.Select(['data', 'title'], q.Get(q.Var('X')),
       otherField: q.Select(['data', 'other'], q.Get(q.Var('X'))
     }
    )
  )
)

此外,您在 ['data, title']

处的问题中缺少结束引号和开始引号