【问题标题】:Remove a MongoDB Document by ObjectId with PHP使用 PHP 通过 ObjectId 删除 MongoDB 文档
【发布时间】:2017-08-01 15:23:16
【问题描述】:

我是 PHP 和 MongoDB 的新手。我想使用它的 ObjectId 删除一个 MongoDB 文档,但似乎无法正常工作。

这是添加对象的方式。因为我没有指定 id,所以 Mongo 为我生成了一个。

public static function addUserPet($userPet) {
    $m = new MongoClient();
    $db = $m->petfinder;
    $collection = $db->userpets;
    $collection->insert($userPet);
    echo json_encode($userPet);
}

这是我尝试更新对象的地方。我不明白如何使用 ObjectId 访问文档。

public static function deleteUserPet($userPet)
{
    $m = new MongoClient();
    $db = $m->petfinder;
    $collection = $db->userpets;

    $criteria = ???

    $collection->remove($criteria, true);
}

$criteria 应该是什么?

注意:这里是传入的对象。

【问题讨论】:

    标签: php mongodb


    【解决方案1】:

    首先,您必须获取集合,然后从特定集合中获取文档。 请看这里: http://php.net/manual/en/mongocollection.findone.php

    关于标准:

    array('_id' => new MongoId('47cc67093475061e3d9536d2')
    

    【讨论】:

    • 是的,这就是让我着迷的原因。我们从哪里得到这个“47cc..”,为什么我们要创建一个新的 MongoId?我只想通过它的 ObjectId 引用现有文档并对其进行更改(或删除它)。抱歉,如果我遗漏了一些明显的东西。
    • 这个 id 应该作为参数出现在 URL 中,如果它是一个 crud 或类似的东西。当您在前端呈现列表时,您会创建一个类似 url?id=mongodbid 的链接。或者,您应该有一个通过其他参数(例如名称)获取的对象列表。实际上与关系数据库相同的架构。
    猜你喜欢
    • 1970-01-01
    • 2013-02-06
    • 2015-09-17
    • 2012-07-30
    • 1970-01-01
    • 2020-05-12
    • 2022-01-18
    • 2021-04-22
    • 2014-10-11
    相关资源
    最近更新 更多