我正在尝试创建一个索引,以返回带键的对象中的排序数据。我的集合的默认索引返回如下所示:
{
"ref": Ref(Collection("posts"), "251333584234742292"),
"ts": 1583632773120000,
"data": {
"title": "A Great Title",
"sort_date": "2019-12-11",
"post_type": "blog",
"status": "published",
}
},...我用以下代码在shell中创建了一个索引:
CreateIndex({
name: "posts_sort_date_desc",
source: Collection("posts"),
values: [
{ field: ["data", "sort_date"], reverse: true },
{ field: ["data", "title"] },
{ field: ["data", "post_type"] },
{ field: ["data", "status"] },
{ field: ["ref"] }
]
}当我查看这个新索引时,排序是正确的,但是它看起来像一个数组,没有像这样的键:
[
"2019-12-11",
"A Great Title",
"",
"published",
Ref(Collection("posts"), "254000373213168147")
], ...是否有一种方法来创建一个排序索引,只使用我需要的数据和键值对?我已经翻阅过那些文件,但还是弄不清楚。谢谢。
发布于 2020-06-26 21:28:17
对你问题的简短回答是:“不,没有”,但可能有解决你的问题的办法(我需要更好地理解你想要解决的问题)。索引将始终是返回数据数组的,因为它们是这样构造的,FaunaDB为您提供了对索引的原始功能的访问。我们不会试图变得聪明和解释你想要的。
(免责声明,我没有测试代码,现在是晚上11:30,所以我几乎要注销:)
尽管如此,有两种选择:
Map(
Paginate(Match(Index('your_index_name'))),
Lambda(['sort_date', 'title', 'post_type', 'status', 'ref'], Get(Var('ref')))
)Map(
Paginate(Match(Index('your_index_name'))),
Lambda(['sort_date', 'title', 'post_type', 'status', 'ref'],
{
ref: Var('ref'),
sort_date: Var('sort_date'),
title: Var('title'),
post_type: Var('post_type'),
status: Var('status')
}
)
)它应该为您提供一个对象数组,而不是:)
https://stackoverflow.com/questions/62602964
复制相似问题