从doctrine mongodb ODM结果中添加和删除元素-PHP

从doctrine mongodb ODM结果中添加和删除元素-PHP,php,symfony-2.1,doctrine-odm,Php,Symfony 2.1,Doctrine Odm,如何将元素移除并添加到doctrine的odm返回的结果中。比如说, 我有疑问 $fruits=$dm->createQueryBuilder('fruits')) ->字段('id')->in($fruit\u list) ->getQuery()->execute() $fruits returned是一个数组,然后我需要遍历它 经过分析后,排列并过滤一些水果。入围名单是 无法通过查询生成器执行,我需要返回已筛选的 结果 我想问一下如何从odm返回的对象中删除元素。我不确定我是否完全理解您的

如何将元素移除并添加到doctrine的odm返回的结果中。比如说,

我有疑问

$fruits=$dm->createQueryBuilder('fruits'))
->字段('id')->in($fruit\u list)
->getQuery()->execute()

$fruits returned是一个数组,然后我需要遍历它 经过分析后,排列并过滤一些水果。入围名单是 无法通过查询生成器执行,我需要返回已筛选的 结果


我想问一下如何从odm返回的对象中删除元素。

我不确定我是否完全理解您的意思,我假设您试图从odm返回的实体中删除一些字段

我会关掉水合作用,用一个简单的阵列

例如:

$fruits = $dm->createQueryBuilder('Fruits')
             ->field('id')
             ->in($fruit_list)
             ->hydrate(false) /* Turn off hydration */
             ->getQuery()->execute();

现在您所要做的就是使用unset并从数组中删除所需的元素

当您迭代
$fruits
并做出入围决定时,创建一个并添加所有进行剪切的对象,然后返回该对象,而不是光标。

谢谢,但我必须处理两种情况-一种是水合作用,另一种是不水合作用。我已经像你说的那样处理了不含水的情况。但如果我也能为含水的物体做这件事,那就太好了。那么,有没有像unset,remove这样的操作用于水合对象呢?你不能从php对象中删除字段,因为它与条令无关。。。你怎么处理这些东西?如果有帮助,可以将字段值设置为null