【问题标题】:How to remove multiple documents in Doctrine MongoDB ODM如何在 Doctrine MongoDB ODM 中删除多个文档
【发布时间】:2012-07-03 06:17:34
【问题描述】:

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

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

如何在学说 mongo odm 中做到这一点?

【问题讨论】:

    标签: mongodb doctrine-odm


    【解决方案1】:

    你有两个选择。使用 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));
    

    或者,您可以使用query builder API

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

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

    【讨论】:

    • 我在文档中没有找到第一个选项,它有我想要的小代码。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多