Как вставить объект схемы в свойство массива другого объекта схемы?
Описание
Я просмотрел документацию realm-js и не смог найти никаких примеров, объясняющих, как вставить объект в свойство массива его родителя.
Чтобы быть немного более понятным, у меня есть схема Test
который имеет свойство data: {type: "data[]", default: []}
Однако я не могу подтолкнуть data
возражает против этого.
Ошибка:
Вот ошибка, которую я получаю.
Свойство должно иметь тип 'data', got ([объект 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;
Схема DeviceData
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;
1 ответ
data
является зарезервированным словом для области, так как оно уже имеет тип данных как data
, Если имя схемы изменилось на что-то другое, проблема будет решена.
Realm поддерживает следующие основные типы: bool, int, float, double, string, data и date.
bool
карта свойств в JavaScriptboolean
ценностиint
,float
, а такжеdouble
свойства сопоставляются с числовыми значениями JavaScript. внутреннеint
а такжеdouble
хранятся как 64 битfloat
хранится с 32 битами.string
карта свойств вstring
data
карта свойств вArrayBuffer
date
карта свойств вDate