具有嵌套对象的 Realm-js 模式

Posted

技术标签:

【中文标题】具有嵌套对象的 Realm-js 模式【英文标题】:Realm-js schema with nested objects 【发布时间】:2017-01-25 12:51:32 【问题描述】:

我想轻松查询这样的结果:

[
  name: 'john_doe',
  info: 
    age: 24,
    notes: 'custom text',
    phoneNumbers: 
      home: 112345678,
      work: 1234567,
    ,
  ,
, ..., ......]

...通过这样的查询:

contacts.filtered("info.age = 24 AND info.notes CONTAINS 'custom'");

我应该如何创建这样的架构?文档对数据类型和嵌套属性非常困惑:

https://realm.io/docs/react-native/0.14.0/api/Realm.html#~PropertyType https://realm.io/docs/react-native/latest/#nested-objects

我不需要单独检索此数据的任何部分 - 只需一次包含所有嵌套对象的完整对象。

【问题讨论】:

【参考方案1】:

您可以将所有字段放入一个对象中:

var ContactSchema = 
    name: 'Contact',
    properties: 
        name: 'string',
        age: 'int',
        notes: 'string',
        homePhone: 'string',
        workPhone: 'string'        
    
;

或者,您可以为 info 和 phoneNumbers 创建子对象,但如果您没有在多个联系人之间共享此数据,则可能不需要这样做。

【讨论】:

以上是关于具有嵌套对象的 Realm-js 模式的主要内容,如果未能解决你的问题,请参考以下文章

spark-xml 中具有嵌套父节点的自定义模式

将 oneOf 嵌套在任何 JSON 模式中

NSDictionary 中的嵌套对象与 RestKit

使用 Bigquery 删除具有“重复”模式的嵌套列

Mongoose:保存具有不同模式的嵌套 JSON

Ramda js:具有嵌套对象数组的深度嵌套对象的镜头