Javascript 使用breezejs筛选实体的子属性集合
我有一个用例,我使用一个实体的子属性集合并过滤它以显示在表中 我知道“any”和“all”查询运算符,但据我所知,它不会过滤实体上的实际子属性集合 所以基本上当我做这样的查询时:Javascript 使用breezejs筛选实体的子属性集合,javascript,breeze,Javascript,Breeze,我有一个用例,我使用一个实体的子属性集合并过滤它以显示在表中 我知道“any”和“all”查询运算符,但据我所知,它不会过滤实体上的实际子属性集合 所以基本上当我做这样的查询时: var query = EntityQuery.from("Farms") .where("FarmYields", "any", "year", "==", 2010); 结果只有农场的产量达到了预期的2010年。但是,每个农场实体上的农场产量集合仍然拥有所有农场产量,无论年份如何 为了让我的结果只显示我
var query = EntityQuery.from("Farms")
.where("FarmYields", "any", "year", "==", 2010);
结果只有农场的产量达到了预期的2010年。但是,每个农场实体上的农场产量集合仍然拥有所有农场产量,无论年份如何
为了让我的结果只显示我感兴趣的FarmYields,我考虑过过滤子集合,但是修改FarmYields似乎是一个错误的举动,因为它是一个非标度导航属性
我想我的问题是如何过滤实体的子属性集合,或者可能我在这里走的是一条完全错误的道路。如果您能提供任何指导,我们将不胜感激。我认为如果您从FarmFairds开始查询,您可以实现您想要做的事情。大概
var query = breeze.EntityQuery.from('FarmYields')
.where('year', '==', 2010)
.expand('Farm');
mgr.executeQuery(query)
.then(function (data) {
var underscore = _;
var farms = underscore.pluck(data.results, 'Farm');
});
现在,您的Farms集合将只包含“年”等于2010年的Farm收益率,谢谢,但问题是我想在表中显示所有农场,并为Farm收益率子集合中有2010年记录的农场上色。我只是检查了农场实体的child FarmRevolds是否有2010年的数据,但我想知道是否可以从child集合中获取这些数据,因为有2000年到2014年的数据。我明白了。如果是这样的话,我唯一能想到的就是分两步进行查询。首先是查询2010年至少有1个农场产量的农场(这是您已经在做的事情)。第二是查询2010年没有任何农场产量的所有农场。这些结果的组合将为您提供所有农场的集合。