2012-10-17 25 views
0

它應該是一般問題,但是我對mongodb和php很陌生,所以請耐心等待:-)。mongodb php爲博客文章創建計數器

我正在創建blogpost網站,並打算爲每個博客提供獨特的blogId,用戶可以訪問http://www.sitename.com/blogID

我存儲在MongoDB中計數器(爲整數),並增加它當有人張貼他/她的博客:

$collection = $collection = new MongoCollection($db, 'blogCount');;  
$object = $collection->findOne(); 
$count = $object['count']; 
$id = $object['_id']; 
$collection->update(array('_id'=>$id),array('$inc' => array("count" => 1))); 
$object = $collection->findOne(); 
$count = $object['count']; 

它工作正常,到目前爲止,但如果超過一個user'll嘗試發佈什麼博客的同時,它可能會向同一個用戶提供相同的$ count。

我該如何消除這個問題?謝謝。

回答

1

這裏的問題是您要創建一個唯一的ID並確保它不被重用,即使有併發訪問數據庫。

在MongoDB中,您可以使用findAndModify()命令執行此操作。看到這裏,瞭解如何使用MongoDB中做到這一點配方:

在這裏看到更多有關findAndModify():