如何将一个架构对象推送到另一个架构对象的数组属性中?



说明

我浏览了 realm-js 文档,但找不到任何解释如何将对象推送到其父对象的数组属性中的示例。

更清楚一点,我有一个模式Test,它有一个属性data: {type: "data[]", default: []},但是我无法将任何data对象推送到它。

错误:

这是我得到的错误。

属性必须是类型为"data",get ([对象 RealmObject](

我尝试过:

这是我尝试过的:

this.realm.write(()=>{
const dataObj = this.realm.create('data', data);
this.user.test.data.push(dataObj);
})

我做错了什么?

我也尝试直接推送数据,但遇到了类似的错误。

测试架构:

class Test{
}
Test.schema = {
name: "test",
primaryKey: "id",
properties: {
id: "string",
start: "date?",
duration: "int", //in seconds
capsule_id: "string",
creation: "date",
status: "int",
height: "float",
weight: "float",
time_of_evolution: "string",
treatment: "bool",
data: {type: "data[]", default: []},
symptoms: {type: "symptom[]", default: []},
meals: {type: "meal[]", default: []},
device: "device?",
ph11: "int?",
ph71: "int?",
ph12: "int?",
ph72: "int?",
cardinal_symptoms: {type: "cardinal_symptom[]", default: []},
}
};
export default Test;

设备数据架构

class DeviceData{}
DeviceData.schema = {
name: 'data',
primaryKey: "timestamp", //check to see if this is a good idea
properties: {
ph1: 'int',
ph2: 'int',
x: 'int',
y: 'int',
z: 'int',
timestamp: 'int',
raw: 'string' //base64, incase something went wrong
}
};
export default DeviceData;
data

是Realm 的保留字,因为它的数据类型已经为data。如果模式名称更改为其他内容,则将解决问题。

Realm 支持以下基本类型:布尔、整数、浮点数、双精度、 字符串、数据和日期。

  • bool属性映射到 JavaScriptboolean
  • intfloatdouble属性映射到 JavaScript 数值。内部intdouble存储为 64 位,而float以 32 位存储。
  • 映射到stringstring属性
  • 映射到ArrayBufferdata属性
  • date属性映射到Date

相关内容

  • 没有找到相关文章

最新更新