Mongo DB中有findAndModify命令使用自动增量编号而不是默认ID,但我不知道如何将它用于PHP驱动程序(我不确定它是否完全支持)。
答案 0 :(得分:2)
好的,如果你需要存储增量值我建议你使用其他字段而不是mongodb _id字段mongodb使用这些生成的id来返回一些(我相信很多,如果不是全部)类型的查询,特别是如果你有一个多集群设置然后它肯定使用_id字段来定位数据所在的物理磁盘(我相信使用哈希表或一些这样的技术 - 不完全是最新的mongo内核的引擎操作)。简而言之,请将其设置为自动生成的参考字段。
答案 1 :(得分:0)
<?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);