如何删除mongodb ODM中不存在的引用文档

时间:2013-04-08 01:13:20

标签: mongodb mongodb-php

有点新的mongodb。我知道mongodb对引用没有限制。因此,如果我有一个不存在的推荐文档,我该如何删除它?

例如:

{
    _id: ObjectId("51619a758ead0e6765000004"),
    createdAt: ISODate("2013-04-08T00:10:29+08:00"),
    works: [ { $ref: "products", $id: ObjectId("51619a758ead0e6765000007"), $db: "ihome", type: "product" } ]
}

已移除推荐产品。我不知道如何从作品中拉出来?我在下面尝试但没有工作:

$dm->createQueryBuilder('SupplierBundle:Supplier')
    ->update()
    ->field('id')->equals('51619a758ead0e6765000004')
    ->field('works.$id')->pull(new \MongoId('51619a758ead0e6765000007'))
    ->getQuery()
    ->execute();

提前致谢。

1 个答案:

答案 0 :(得分:2)

行。我发现了如何做到这一点:

$dm->createQueryBuilder('SupplierBundle:Supplier')
    ->update()
    ->field('id')->equals('51619a758ead0e6765000004')
    ->field('works')->pull(array('$id' => new \MongoId('51619a758ead0e6765000007')))
    ->getQuery()
    ->execute();