2017-08-01 52 views
0

我是PHP和MongoDB的新手。我想用它的ObjectId去除一个MongoDB文档,但似乎无法使它工作。通过ObjectId使用PHP删除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应该是什么?

注:这里是正在传递的对象 $userPet

回答

0

首先,你必须得到收集,然后从一个特定集合提取文档。 看一看这里请: http://php.net/manual/en/mongocollection.findone.php

关于标准:

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

呀,这是什么样的挂我。我们从哪里得到这个'47cc ..',为什么我们要创建一个新的MongoId?我只想通过ObjectId引用现有文档并对其进行更改(或删除它)。对不起,如果我错过了明显的东西。 – smm

+1

这个ID应该在URL中作为参数,如果它是一个粗俗或类似的东西。当您在前端端渲染列表时,您将创建一个链接,如url?id = mongodbid。或者,您应该有其他参数(例如名称)提供的对象列表。实际上和关系数据库一样。 – Vladislav

+0

有道理,谢谢! – smm