1

产品架构有很多细节,比如:产品名称、制造日期、制造商名称、产品类型等。但我需要支持没有为产品细节定义架构的灵活性。为了实现这一点,下面是 Realm-JS 模式。

import Realm from 'realm';
export default class ProductModel extends Realm.Object { }
    ProductModel.schema = {
        name: 'ProductModel',
        properties: {
            productAttributes: { type: 'list', objectType: 'ProductDetailsModel' },
            ID: { type: 'string', optional: true },        
        }
    };

import Realm from 'realm';
export default class ProductDetailsModel extends Realm.Object { }
ProductDetailsModel.schema = {
    name: 'ProductDetailsModel',
    properties: {
        attributeName: { type: 'string', optional: true },
        attributeValue: { type: 'string', optional: true },
    }
};

这种灵活性导致编写过滤器查询的复杂性。我需要能够根据特定的产品属性名称和产品属性值进行过滤。

let query = "productAttributes.attributeName = " + "\"" + "Manufacturer" + "\"" + " AND productAttributes.attributeValue = [c]" + "\"" + "Pepsico" + "\"";        

        var productList = this.realm.objects('ProductModel').filtered(query).snapshot();

请帮助我编写查询以从与 ProductDetailsModel 匹配的属性名和属性值的数据库中过滤 ProductModel 吗?

当前查询与单个 ProductDetailsModel 不匹配,其中 attributeName ="Manufacturer" AND attributeValue = "Pepsico"

4

1 回答 1

0

您通过 Objects 本地属性引用它,而不是链接对象的名称。例如

let attributeName = "Manufacturer"
let attributeValue = "Pepsico"
let query = `productAttributes.attributeName  ==[c] '${attributeName}' AND productAttributes.attributeValue ==[c] '${attributeValue}'`
于 2018-09-11T22:29:56.873 回答