如何引用Realm中已创建的对象?

时间:2016-11-01 13:15:40

标签: database react-native realm

让我们从官方领域文档中获取示例。我们有汽车和人员。

const CarSchema = {
  name: 'Car',
  properties: {
    id:  {type: 'string'}, // UUID
    make:  {type: 'string'},
    model: {type: 'string'}
  }
};

const PersonSchema = {
  name: 'Person',
  properties: {
    name:  {type: 'string'},
    car: '' // Something here to reference on already created car??
  }
};

例如,我已经创建了一些带有UUID id-s的汽车。现在我想创建一个用户。在UI中,它看起来像表单,您可以在其中编写用户名并从下拉列表中选择一个已创建的车辆。

那么如何参考已经创建的汽车?它应该是带有id的字符串,或者是什么?

1 个答案:

答案 0 :(得分:4)

链接是Realm中的一等公民,因此您不需要引入人工外键。您可以直接链接到另一个对象架构。在基于JavaScript的绑定中,您可以通过将相关对象架构的名称指定为type来实现,如下所示。

const PersonSchema = {
  name: 'Person',
  properties: {
    name:  { type: 'string' },
    car:   { type: 'Car' } // or just: 'Car'
  }
};

使用此模型,您可以创建Person个已添加已存在的Car对象,如下所示:

const realm = …
const volvo = realm.objects("Car").filtered("make = $0 AND model = $1", "Volvo", "XC60")[0];
const person = realm.create("Person", {
   name: "Tim",
   car:  volvo,
});