我需要这个来删除X结果,让我们说这个例子我想删除一个结果。但我希望所有其他结果保持完全相同。
我正在关注:
和
https://api.cakephp.org/3.3/class-Cake.Collection.Iterator.MapReduce.html
现在我正在尝试实现,使用map reduce并获得完全相同的结果。所以我以后可以添加条件来删除单个结果。
我需要将帖子缩小后的结果保留为查询对象,以便我可以对结果进行分页(我不确定这是否可行)
$mapper = function ($query, $key, $mapReduce) {
$everything = 'all';
$mapReduce->emitIntermediate($query, $everything);
};
$reducer = function ($query, $status, $mapReduce) {
$mapReduce->emit($query,$status);
};
$query = /* ... Make any query on anything ... */
$query->mapReduce($mapper,$reducer);
$paginateforview = $this->paginate($query);
这会导致我的结果只是以数组的形式计算结果中的项目数。
我想要一个示例,说明map / reduce如何减少任何内容,或者甚至是否可能。
我已经尝试过地图,但根据文档,这是map / reduce每个地图的工作无法删除结果。
https://book.cakephp.org/3.0/en/orm/query-builder.html
$query->formatResults(function (\Cake\Collection\CollectionInterface $results) {
return $results->map(function ($row) {
//Something that unsets the result I tried unset($row)
return $row;
});
});
总之,我需要mapper来返回所有内容,并使用reducer来减去整个结果或更基本的用法示例,然后是菜谱中的内容。
注意:我意识到编辑数据库以便我的查询允许过滤结果将是最佳的,但是现在我正在构建自定义报告,我不能只是将数据添加到数据库中。