0

好的,这似乎我可能不得不做 mulitable mongodb 搜索和插入,但我想我会问。

我有一个问题,我们需要在数据库中搜索企业名称,如果它不在数据库中,然后添加它,但如果它在数据库中,那么我需要它来查看它是否由相同的用户 ID 拥有。如果不返回,则返回"sorry we can not add this to your account."正确所有者的用户 ID。

我以为一个简单的

$cursor = $collection->find(array("businessname" => $businessname));

会起作用,但这意味着我需要执行以下操作

$collection = $this->db->retail_details;
$cursor = $collection->find(array("businessname" => $businessname));
if ($cursor->count() > 0)
{
SEARCH FOR OWNER
  if(OWNER != CURRENTUSER)
  {
return "Sorry You can not make changes please contact (OWNER)"
  }
}
else{
INSERT NEW LEAD
}

虽然我知道这会起作用,但我发现它可能会变得混乱。作为经理的用户需要能够查看和编辑任何潜在客户。

4

1 回答 1

0

您应该能够通过匹配企业名称和所有者作为您的标准来执行此操作

Upsert:如果没有文档与 $criteria 匹配,则将从 $criteria 和 $new_object 创建一个新文档

将沿着:

<?php
    $collection = $this->db->retail_details;
    try {
        $collection->update(
            array("businessname" => $businessname, "owner" => $currentuser),
            $new_lead, // new lead document to insert
            array("upsert" => true, "safe" => true)
        );
    } catch (Exception $e) {
        // Something went wrong .. 
    }
?>
于 2012-07-25T01:40:22.630 回答