React native 根据链接对象数组的长度对结果进行排序

React native 根据链接对象数组的长度对结果进行排序,react-native,realm,realm-mobile-platform,React Native,Realm,Realm Mobile Platform,考虑使用注释和标记的情况。注释和标记定义为: export class Note extends Realm.Object { public static schema: Realm.ObjectSchema = { name: 'Note', primaryKey: "_id", properties: { _id: "string", text: 'string',

考虑使用注释和标记的情况。注释和标记定义为:

export class Note extends Realm.Object {
  public static schema: Realm.ObjectSchema = {
      name: 'Note',
      primaryKey: "_id",
      properties: {
          _id: "string",
          text: 'string',
          date: 'date',
          tags: 'Tag[]'
      }
  }
}

export class Tag extends Realm.Object {
  public static schema: Realm.ObjectSchema = {
      name: 'Tag',
      primaryKey: "name",
      properties: {
          name: 'string',
          notes: {
            type: 'linkingObjects',
            objectType: 'Note',
            property: 'tags'
          }
      }
  }
}
出于标记自动完成的目的,我希望根据标记出现的注释数量(即注释数组的长度)对标记进行排序,直观地说,这意味着能够执行以下语句:

realm.objects('Tag').sorted('notes.@count')
不幸的是,这将导致错误
错误:无法对键路径“notes@count”进行排序:属性“Tag.notes”属于不受支持的类型“linking objects”。


对于检索notes中按频率排序的标签,您的建议查询是什么?

只是澄清一下;这个问题提到了“频率”,但你的意思是你想按照标签数组中标签的数量对笔记进行排序,对吗?或你想按某种东西对标签进行排序吗?有点让人困惑。抱歉让人困惑。事实上,我想根据标签数组中标签的数量进行排序。我相信您所问的是非常需要但目前不支持的(自2017年起开放)。如果对象的数量很小,那么在代码中这样做就很简单了——记住,一旦您离开纯领域对象,数据就会加载到内存中,并释放其延迟加载特性。如果有帮助的话,我可以迅速提出一个解决方案。哦,另一个简单的解决方案是维护一个单独的属性来跟踪标记的计数。那么分类就非常简单了。@Jay谢谢你的回答。如果你有一个javascript解决方案,那就太好了。