也就是 插入第一条
id=1
插入第二条 id=2
id=1
插入第二条 id=2
我们写一个mongodb类
具体代码我就不说了 我这里就简单的列举一下
原型 $db->insert($data=array(),$options=array()){}
然后我们插入 数据的时候是这样的
$db->insert(array("test"=>"测试")); //插入成功并没有id
我们封装一个 insert 类
function insert(array $data,$options=[]){ $this->before($data); //这里的befor 是引用$data return $this->db->insert($data,$options); }
protected function before(&$data) { $pk='id'; if(!isset($data[$pk])) { $data[$pk] = $this->id($pk); } }
来看 before 的原型 (&$data)
检测到 $data数组不存$data['id']
$data['id']=id()//自增字段
来看一下id的函数 ()
protected function id($pk) { $result = $this->find(array(),array($pk=>1))->sort(array($pk=>-1))->limit(1); //查询字段id $data = $result->getNext(); //获取下一条数据 return isset($data[$pk])?$data[$pk]+1:1; //不存在id id默认1 存在+1 }
回到刚才的插入 $db->insert(array("test"=>"测试"));
因为再插入之前增加了一个引用函数before
那么 数组就变成了 array("test"=>"测试","id"=>1) //存在就是id+1
因为再插入之前增加了一个引用函数before
那么 数组就变成了 array("test"=>"测试","id"=>1) //存在就是id+1