0

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

我怎样才能消除这个问题?谢谢。

4

1 回答 1

1

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

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

有关 findAndModify() 的更多信息,请参见此处:

于 2012-10-17T21:04:35.130 回答