mongodb php为博客文章创建计数器

时间:2012-10-17 18:35:45

标签: php mongodb

这应该是一般问题,但我是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'];

到目前为止工作正常,但如果不止一个用户会尝试同时发布博客,它可能会为多个用户提供相同的$ count。

如何消除此问题?感谢。

1 个答案:

答案 0 :(得分:1)

您的问题是,您希望创建一个唯一的ID,并确保它不会被重用,即使存在对数据库的并发访问权。

在MongoDB中,您可以使用findAndModify()命令执行此操作。有关如何使用MongoDB执行此操作的信息,请参阅此处:

有关findAndModify()的详细信息,请参阅此处: