如何从realm数据库查询具有不同结果的java

时间:2015-06-22 11:29:38

标签: java android realm nosql

我有一个Realm对象类,并在那里存储大量数据,想象我有一个String uid;字段。我想得到uid的名字,但在同一个uid名字只有一次, 例如

uid

AA

AA

BB

CC

DD

BB

BB

我想得到的  AA,

BB,

CC,

DD

只有一次。 我查看了领域文档,但无法找到任何内容。

感谢您的回答。

3 个答案:

答案 0 :(得分:26)

更新:

您可以使用distinct()来获取对象类的不同条目。

// Returns the set of users that all have a different name
RealmResults<User> users = realm.where(User.class).distinct("name");

注意:  .distinct仅适用于已编制索引的字段(@Index或@PrimaryKey)。 它不适用于子对象属性。

您可以在官方文档中找到有关此方法的更多信息。 https://realm.io/docs/java/latest/api/io/realm/Realm.html#distinct-java.lang.Class-java.lang.String-][1]

答案 1 :(得分:0)

请使用以下步骤在Realm上进行区分

将您的领域版本更新到领域:1.2.0。因为旧版本不能正常工作。

将@Index属性添加到要应用不同

的变量

像这样执行你的查询

<div class="row usps">
  <div class="col-sm-4 usp-block" ng-repeat="block in content.marketing" match-height>
    // Inner HTML
  </div>
</div>

要在项目中包含域依赖项,可以在build.gradle(Project)

中添加以下行
RealmResult<Example> realmReault =realm.where(Example.class).distinct("uid");

以上代码经过测试并正常运行

答案 2 :(得分:0)

其他答案几乎正确,但仍然不完整。

其他解决方案需要使用 .findAll() 以便返回值保持 RealmResult 类型。

RealmResult<Example> realmReault =realm.where(Example.class).distinct("uid").findAll();

关于realm-gradle-plugin:6.0.2,