0

わかりました、これは私が多目的な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として実行できるはずです。

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 に答える