2012-07-25 71 views
0

好吧,這似乎我可能不得不做mulitable mongodb搜索和插入,但我想我會問。MongoDB搜索和保存條件

我有一個問題,我們需要搜索數據庫中的商業名稱,如果它不在數據庫然後添加它,但如果它在數據庫中,那麼我需要它來查看它是否擁有相同的用戶名。如果不返回"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 
} 

雖然我知道這工作,我覺得這可能會導致混亂。 作爲經理的用戶需要能夠查看和編輯任何潛在客戶。

回答

0

您應該能夠通過將商戶名稱和所有者作爲條件進行匹配來將其作爲upsert來執行此操作。

的Upsert:如果沒有文件符合標準的$,一個新的文件將被 從$標準創建和$ 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 .. 
    } 
?>