2012-03-13 7 views
0

PHPでMongoDBを使用して、ユーザーが基本形式で追加する曲を保存しています。作成したコレクションは以下のようになります。新しい文書を追加しない場合は、コレクションに文書が存在するかどうかを確認してください。

$object = array(
    "trackName" => "Sju sorger", 
    "artistName" => "Veronica Maggio", 
    "albumName" => "Satan i Gatan", 
    ); 
$collection->save($object); 

私が達成しようとしているのは、曲がすでにコレクションに入っているかどうかを確認することです。追加しようとしている曲のユーザーがまだコレクションにない場合は、追加されます。すでにコレクションに入っている場合は、そのコレクションにすでに曲が入っていることを示す通知が表示されます。

私は比較的新しいMongoDBですが、文書の_idをチェックすることで、その曲がすでにコレクションに入っているかどうかを確認できます。しかし、私はそれを達成する方法を知らない。

ご協力いただければ幸いです。

答えて

6

この方法を使用してください。

<?php 
    try { 
     // open connection to MongoDB server 
     $conn = new Mongo('localhost'); 

     // access database 
     $db = $conn->test; 

     // access collection 
     $collection = $db->items; 

     // GET TRACK NAME 
     $trackname = 'placetracknamehereifsearchingbytrackname'; 
     // retrieve existing document 
     $criteria = array(
     'trackName' => trackname , 
    ); 
     $doc = $collection->findOne($criteria); 

     if(!empty($doc) { 
     echo 'Data Already Exist'; 
     } else { 
    // insert a new document 
    $object = array(
    "trackName" => "Sju sorger", 
    "artistName" => "Veronica Maggio", 
    "albumName" => "Satan i Gatan", 
    ); 
    $collection->save($object); 
    echo 'Added Successfully!'; 
} 
     // disconnect from server 
     $conn->close(); 
    } catch (MongoConnectionException $e) { 
     die('Error connecting to MongoDB server'); 
    } catch (MongoException $e) { 
     die('Error: ' . $e->getMessage()); 
    } 
    ?> 

さらにこのリソースを使用してください。

Mongo Resource

+0

ありがとうございます。それはまさに私が探していたものです。あなたの助けが大変ありがとうございます。 – Metin