7

如何删除学说 mongodb odm 中的多个文档?在 PHP 类中,我应该能够使用以下代码来做到这一点:

 $db->collection->remove(array("age" => 18));

我怎样才能在学说mongo odm中做到这一点?

4

1 回答 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 将对数据库执行什么。

于 2012-07-02T23:48:03.560 回答