假设我想将这样的对象存储到领域数据库
Record 1
{name:'John',attributes:{hairColor:'black',birthDate:'1990-10-01'}}
Record 2
{name:'Sara',attributes:{gender:'female',allergies:['peanuts','cocaine']}}
所以我为我的本机反应项目做了类似的事情
import Realm from 'realm';
class ProductCategory {}
Person.schema = {
name: 'Person',
properties: {
name: {type: 'string'},
attributes: {type: 'list',objectType:'json'},
}
};
Realm.open({schema: [Person]});
在我的react-native应用程序中运行此代码会显示错误消息:
警告遇到过一次。可能未处理的承诺拒绝 (id:0):错误:由于以下错误,架构验证失败: - 属性'Person.attributes'类型'array'具有未知对象类型'json'
如何将属性定义为数组?
答案 0 :(得分:1)
我对问题的理解:
您想保存人物及其对应属性的记录;因此,当您查询约翰时,您以后可以进行john.attributes.hairColor
并获得black
我不明白的是,为什么attributes
是type: 'list'
却似乎是一个对象。 (也许是说它是对象数组?)将其与显然是数组的allergies
进行对比。
我将如何创建模式(我现在无法运行代码,因此请验证并告知其是否有效):
class Attributes {}
Attributes.schema = {
name: "Attributes",
properties: {
hairColor: "string?", // ? = optional
birthDate: "date?",
gender: "string?",
allergies: "string?[]", // [] = list or array
}
}
class Person {}
Person.schema = {
name: "person",
properties: {
name: "string",
attributes: "Attributes", // Nested schema
}
}
在注释中,您提到要创建另一个属性lotteryNumbers
,它是一个数字数组。我会在Person.schema.properties
-
properties: {
...
lotteryNumbers: "int[]" // Array of integers
}
如果我有任何错误,请告诉我;我也在学习,这就是我到达这里的方式:p