如何在Doctrine MongoDB ODM中删除多个文档

7
我该如何在Doctrine MongoDB ODM中删除多个文档?在PHP类中,您可以使用以下代码完成此操作:
 $db->collection->remove(array("age" => 18));

我该如何在Doctrine Mongo ODM中实现这个功能?
1个回答

16

你有两个选项。使用DocumentManager,可以请求给定类的集合。这实际上会返回一个Doctrine\MongoDB\Collection实例,它包装了基本的MongoCollection以支持日志记录和事件。如果您真的需要它,底层的MongoCollection也是可用的:

$collection = $dm->getDocumentCollection('Documents\User');
$collection->remove(array('age' => 18));

// Use the raw MongoCollection to bypass logging and events
$mongoCollection = $collection->getMongoCollection();
$mongoCollection->remove(array('age' => 18));

或者,您可以使用查询构建器API

$qb = $dm->createQueryBuilder('Documents\User');
$qb->remove()
    ->field('age')->equals(18)
    ->getQuery()
    ->execute();

如果你在getQuery()处停止,你可以在返回的查询对象上使用debug()方法,以查看Doctrine将针对数据库执行什么操作。


我在文档中没有找到第一个选项,但它有我想要的小代码。谢谢! - dextervip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接