如何从多个模式中收集数据? - 境界

时间:2018-05-31 16:19:52

标签: javascript node.js realm realm-js

我是Realm数据库中的新手,这太棒了,我对这段关系的事情几乎没有疑问。我不想问每个疑问,而是从一个例子中理解它。下面给出了从领域schema文档中复制的示例javascript

const CarSchema = {
  name: 'Car',
  properties: {
    make:  'string',
    model: 'string',
    miles: {type: 'int', default: 0},
  }
};
const PersonSchema = {
  name: 'Person',
  properties: {
    name:     'string',
    birthday: 'date',
    cars:     'Car[]'
    picture:  'data?', // optional property
  }
};

现在问题......

1)如何从上面给出的架构获得拥有特定汽车的人员列表?

2)我应该提供propertyCar架构,例如owner: 'Person'吗? 还是有任何反向关系的事情。 (我不知道完美的术语,我是新手:/)

注意:可以在评论中提出进一步的问题。

1 个答案:

答案 0 :(得分:2)

是的,要定义反向关系。为此你应该创建这样的架构,

const CarSchema = { 
  name: 'Car', 
  properties: { 
    make: 'string', 
    model: 'string', 
    miles: {type: 'int', default: 0}, 
    owner: 'Person'
  } 
}; 
const PersonSchema = {
  name: 'Person', 
  properties: { 
    name: 'string', 
    birthday: 'date', 
    cars: {type: 'linkingObjects', objectType: 'Car', property: 'owner'}
    picture: 'data?' 
  } 
};

在这里,Person有汽车,其中Car对象中的owner属性被映射到此人。 car.owner为您提供了Person对象,person.cars为您提供了该人拥有的所有汽车。