这应该是一般问题,但我是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。
如何消除此问题?感谢。
答案 0 :(得分:1)
您的问题是,您希望创建一个唯一的ID,并确保它不会被重用,即使存在对数据库的并发访问权。
在MongoDB中,您可以使用findAndModify()命令执行此操作。有关如何使用MongoDB执行此操作的信息,请参阅此处:
有关findAndModify()的详细信息,请参阅此处: