mongodb中ID的序列号


Sequence Numbers for ID in Mongo DB

在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);