这应该是一个普遍的问题,但我是mongodb和php的新手,所以请容忍我:-)。
我在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。
我怎样才能消除这个问题?谢谢。
发布于 2012-10-18 05:04:35
这里的问题是,您希望创建一个惟一的ID,并确保它不会被重用,即使存在对数据库的并发访问。
在MongoDB中,可以使用findAndModify()命令执行此操作。有关如何使用MongoDB执行此操作的食谱,请参阅此处:
有关findAndModify()的更多信息,请参阅此处:
https://stackoverflow.com/questions/12941000
复制相似问题