RealmJS:正确的查询,用于使用 AND 组合从列表中获取对象



产品的架构有很多细节,如:产品名称,制造日期,制造商名称,产品类型等。但我需要支持没有定义产品详细信息架构的灵活性。为了实现这一点,下面是 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();

请帮我编写查询以从与产品详细信息模型匹配的数据库中过滤产品模型属性名称和属性值?

当前查询与单个产品详细信息模型不匹配,其中属性名称 ="制造商" 和属性值 = "百事可乐">

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

let attributeName = "Manufacturer"
let attributeValue = "Pepsico"
let query = `productAttributes.attributeName  ==[c] '${attributeName}' AND productAttributes.attributeValue ==[c] '${attributeValue}'`

相关内容

  • 没有找到相关文章

最新更新