首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Fauna DB中创建以键值对返回排序数据的索引?

如何在Fauna DB中创建以键值对返回排序数据的索引?
EN

Stack Overflow用户
提问于 2020-06-26 21:17:42
回答 1查看 820关注 0票数 0

我正在尝试创建一个索引,以返回带键的对象中的排序数据。我的集合的默认索引返回如下所示:

代码语言:javascript
复制
{
  "ref": Ref(Collection("posts"), "251333584234742292"),
  "ts": 1583632773120000,
  "data": {
    "title": "A Great Title",
    "sort_date": "2019-12-11",
    "post_type": "blog",
    "status": "published",
   }
},...

我用以下代码在shell中创建了一个索引:

代码语言:javascript
复制
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"] }
  ]
}

当我查看这个新索引时,排序是正确的,但是它看起来像一个数组,没有像这样的键:

代码语言:javascript
复制
[
  "2019-12-11",
  "A Great Title",
  "",
  "published",
  Ref(Collection("posts"), "254000373213168147")
], ...

是否有一种方法来创建一个排序索引,只使用我需要的数据和键值对?我已经翻阅过那些文件,但还是弄不清楚。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-26 21:28:17

对你问题的简短回答是:“不,没有”,但可能有解决你的问题的办法(我需要更好地理解你想要解决的问题)。索引将始终是返回数据数组的,因为它们是这样构造的,FaunaDB为您提供了对索引的原始功能的访问。我们不会试图变得聪明和解释你想要的。

(免责声明,我没有测试代码,现在是晚上11:30,所以我几乎要注销:)

尽管如此,有两种选择:

  • 不是基于索引中的值,而是取出引用并编写一个Map/Get来获取底层文档,这样一个就会作为一个对象出现。不过,每次Get也要花费一次读取,因此这是一种权衡,但是如果添加了新属性,而您不想对其排序,但希望返回(否则您必须重新创建索引),它将更加灵活。

代码语言:javascript
复制
Map(
   Paginate(Match(Index('your_index_name'))),
   Lambda(['sort_date', 'title', 'post_type', 'status', 'ref'], Get(Var('ref')))
)

  • 保持索引不变,一旦得到这些值,就可以轻松地在这些索引页上编写Map (在FQL中),并通过返回一个对象来重构结果。这看起来有点像

代码语言:javascript
复制
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')
     }
   )
)

它应该为您提供一个对象数组,而不是:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62602964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档