3

对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();

提前致谢。

4

1 回答 1

2

好的。我找到了如何做到这一点:

$dm->createQueryBuilder('SupplierBundle:Supplier')
    ->update()
    ->field('id')->equals('51619a758ead0e6765000004')
    ->field('works')->pull(array('$id' => new \MongoId('51619a758ead0e6765000007')))
    ->getQuery()
    ->execute();
于 2013-04-08T02:28:25.580 回答