【问题标题】:Realm React Native - does SORT DISTINCT actually work?Realm React Native - SORT DISTINCT 真的有效吗?
【发布时间】:2018-04-03 19:53:28
【问题描述】:

Realm JavaScript documentation 说:

使用 SORT 和 DISTINCT 函数可以对不同的值进行排序和查找,例如年龄 > 20 SORT(name ASC, age DESC) DISTINCT(name).

  • 排序的顺序可以是以下不区分大小写的文字之一:ASC、ASCENDING、DESC、DESCENDING。
  • 任何数量的属性都可以出现在逗号分隔列表中的括号内。
  • 可以指定任意数量的排序/不同条件,它们将按指定的顺序应用。
  • 排序或区分不能独立操作,这些条件必须附加到至少一个查询过滤器。

我正在尝试这样使用它:

realm
  .objects<CardFace>(CardFaceSchema)
  .filtered(`SORT(name ASC, expansion.releaseDate DESC) DISTINCT(name)`)

并通过以下消息获得红屏死机:SORT(name ASC, expansion.releaseDate DESC) DISTINCT(name):1:4(4): Invalid predicate.

我做错了什么?我的领域版本是 2.3.3

【问题讨论】:

  • name 上面有索引,对吧?
  • 是的。为简洁起见,我不想发布整个架构。

标签: javascript react-native realm


【解决方案1】:

Sort 和 Distinct 不能在没有谓词的情况下应用。因此,将您的过滤器修改为:

realm
  .objects<CardFace>(CardFaceSchema)
  .filtered(`TRUEPREDICATE SORT(name ASC, expansion.releaseDate DESC) DISTINCT(name)`)

【讨论】:

  • 感谢您指出这一点。无论出于何种原因,这在文档中都不是很明显。我已经转移到另一个任务,但是当我回到这个问题时,我会将此标记为答案,假设我没有遇到其他问题。
  • 这就是第四个子弹旨在传达的内容。我将与 Realm 的 JavaScript 团队联系以使其更加明确。
猜你喜欢
  • 1970-01-01
  • 2017-10-03
  • 2018-07-08
  • 1970-01-01
  • 2018-08-10
  • 2016-07-22
  • 1970-01-01
  • 1970-01-01
  • 2021-08-17
相关资源
最近更新 更多