【发布时间】:2013-07-21 12:02:06
【问题描述】:
首先,对不起我的英语,我开始学习 MongoDB。 :)
我正在尝试使用 CI 库将记录插入 MongoDB (https://github.com/alexbilbie/codeigniter-mongodb-library/tree/v2)。
插入工作完美,但我无法使用推荐的函数插入以自动递增 getNextSequence (http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/)。
我尝试了以下方法都没有成功。
控制器:
$data = array('_id' => 'getNextSequence("myid")',
'name' => 'Test '.time(),
'email' => 'test@test.com');
$this->default_model->add($this->collection, $data);
型号:
function add($collection, $data){
return $this->mongo_db->insert($collection, $data);
}
这会返回字符串 'getNextSequence("relatoriosid")' 作为“_id”。
我也试过用command功能,像这样:
控制器:
$query = 'db.collection.insert({_id: getNextSequence("myid"), name: "Test '.time().'"});';
$ret = $this->default_model->execute($query);
var_dump($ret);
型号:
function execute($query){
return $this->mongo_db->command($query);
}
这样,返回错误:
["errmsg"]=> string(136) "exception: JavaScript execution failed: ReferenceError: getNextSequence is not defined near 'quence("myid"), name: "Teste 1374' "
["code"]=> int(16722)
["ok"]=> float(0)
有没有人实现过类似的东西? 提前致谢!
【问题讨论】:
-
我发现了一个类似于@jmikola 回答的问题的主题,它说当前无法在写入操作期间执行某个功能:stackoverflow.com/a/17284555/704830
标签: php codeigniter mongodb auto-increment