【问题标题】:Realm queries and filters领域查询和过滤器
【发布时间】:2016-09-02 08:16:53
【问题描述】:

出于说明目的,假设我有这样的课程。

Class Person {
     dynamic var id = 0
     dynamic var name = ""
     let dogList = List<Dog>()
}

Class Dog {
    dynamic var id = 0
    dynamic var name = ""
}

如果在 Realm 数据库中,我有 1 个人名 John 和 10 条狗。但是我只想检索 John 的信息和他的一只名为“Fluff”的狗用于 json 序列化。所以它会是这样的:

{
    "PersonList" : [{
        "id" : 1
        "name" : "John"
        "DogList" : [{
            "id" = 0
            "name" = "Fluff"
        }]
    }]
}

如果只是为了狗对象,我可以做这样的事情。

let dogsList = realm.objects(Dog).filter({ $0.name == "Fluff" })

但我还需要来自 Person 对象的信息。

【问题讨论】:

  • 你能澄清你想要做什么吗?看来您实际上是在尝试检索两个对象 1) John 和 2) 狗 Fluff。一个简单的解决方案是从该对象中检索 John,然后检索他的狗 Fluff?
  • 是的,我正试图找回约翰和他的狗。所以我想我必须找回约翰,然后是他的狗,因为我想知道是否有办法让我过滤狗只包含绒毛。

标签: swift realm


【解决方案1】:

我想你正在寻找inverse relationship

class Dog: Object {
    dynamic var name = ""
    dynamic var age = 0
    let owners = LinkingObjects(fromType: Person.self, property: "dogList")
}

【讨论】:

  • 不。我知道反向关系。我只需要一种方法来查询 Person 对象以拥有一只狗。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-12
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-28
  • 1970-01-01
相关资源
最近更新 更多