2012-07-25 5 views
0

Ok, cela semble que je pourrais avoir à faire la recherche multiple de mongodb et insère mais pensé que je demanderais. J'ai un problème où nous devons rechercher dans la base de données un nom d'entreprise s'il n'est pas dans la base de données puis l'ajouter, mais s'il est dans la base de données, j'en ai besoin pour voir s'il est possédé par le même identifiant d'utilisateur. sinon renvoyer "sorry we can not add this to your account." suivi de l'ID utilisateur du propriétaire correct.MongoDB Rechercher et enregistrer si les conditions

Je pensais que simple

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

fonctionnerait, mais cela voudrait dire que je devrais faire ce qui suit

$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 
} 

Même si je sais que cela fonctionne, je trouve que cela pourrait être gênant. En tant qu'administrateur, les utilisateurs doivent pouvoir afficher et modifier les prospects.

Répondre

0

Vous devriez pouvoir le faire en tant que upsert en faisant correspondre vos noms d'entreprise et de propriétaire.

Upsert: Si aucun document ne correspond à $ critères, un nouveau document sera créé à partir de critères $ et new_object $

serait-il le long des lignes de:

<?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 .. 
    } 
?> 
Questions connexes