我想知道是否应该在Contract.worker
字段中使用以下合同中的to-one relationship
的关联对象< =>工作者架构,因为我无法从Contract.worker
获取数据。
我已经尝试过本机反应,但是在循环合约领域对象时Contract.worker
对象是空的。
Contract.schema = {
name: "contract",
properties: {
worker: {
type:'linkingObjects',
objectType:'worker',
property:"contracts"
},
role:'int'
}
};
Worker.schema = {
name: 'worker',
primaryKey: 'id',
properties: {
id:'int'
name:'string',
contracts: {type: 'list', objectType: "contract"}
}
}
realm.objects("contract").map(contract=>{
console.log(contract.worker) //no worker data
})
但是当我将Contract.worker字段更改为:
Contract.schema = {
name: "contract",
properties: {
worker:{type:'worker'},
role:'int'
}
};
我可以从map
函数获取工作人员数据。所以我想问一下,我首先使用的是linkingObjects
错误吗?我以为这个工人< =>合同模式类似于人< =>除了Contract.worker
不是列表之外,文档中的dog模式。但文档说linkingObjects
可以指向列表或对象属性。
答案 0 :(得分:1)
LinkingObject适用于多对多和一对一的关系,但您总是会将链接对象(反向关系)视为多对多关系(列表)
链接对象由Realm自动评估,但您需要自己修改关系的另一面,在最初的示例中,向contracts
添加项目会使其显示在worker
中(应该是workers
)。