Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用breezejs筛选实体的子属性集合_Javascript_Breeze - Fatal编程技术网

Javascript 使用breezejs筛选实体的子属性集合

Javascript 使用breezejs筛选实体的子属性集合,javascript,breeze,Javascript,Breeze,我有一个用例,我使用一个实体的子属性集合并过滤它以显示在表中 我知道“any”和“all”查询运算符,但据我所知,它不会过滤实体上的实际子属性集合 所以基本上当我做这样的查询时: var query = EntityQuery.from("Farms") .where("FarmYields", "any", "year", "==", 2010); 结果只有农场的产量达到了预期的2010年。但是,每个农场实体上的农场产量集合仍然拥有所有农场产量,无论年份如何 为了让我的结果只显示我

我有一个用例,我使用一个实体的子属性集合并过滤它以显示在表中

我知道“any”和“all”查询运算符,但据我所知,它不会过滤实体上的实际子属性集合

所以基本上当我做这样的查询时:

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年没有任何农场产量的所有农场。这些结果的组合将为您提供所有农场的集合。