在Mongo DB中有findAndModify命令使用自动增量数字而不是默认ID,但我不知道如何将其用于PHP驱动程序(我不确定它是否完全支持)。
好的,如果你需要存储增量值我建议你使用其他字段不是mongodb _id字段mongodb使用这些生成的id返回一些(如果不是全部)我相信很多类型的查询,特别是如果你有一个多集群设置那么肯定使用_id领域定位物理磁盘上的数据(我相信使用哈希表或一些这样的技术,而不是完全及时了解底层操作蒙戈的内核)。简而言之,请不要管它,它被设计成一个自动生成的引用字段
<?php
$m = new MongoClient();
// select a database
$db = $m->seq;
// select a collection (analogous to a relational database's table)
$collection = $db->counters;
$user_collection = $db->user;
/**********Function to auto increment seq************/
function getNextSequence($name){
global $collection;
$retval = $collection->findAndModify(
array('_id' => $name),
array('$inc' => array("seq" => 1)),
null,
array(
"new" => true,
)
);
return $retval['seq'];
}
$db_array=array('_id' => getNextSequence("userid"), 'name' => 'debojit');
$user_collection->insert($db_array);