我已将js函数保存到db.system.js集合中,该函数重新调用sequenceId 我想用它来设置实体中的id值。
我正在尝试在Doctrine odm中使用MongoDB中的这个存储过程,如下所示:
$data=new Application\Entities\Data;
$data->setId("getSequence('campagne')");
$dm->persist($data);
但是没有评估函数,实体Data中的注释@Id会覆盖我设置的值。
可以在Doctrine odm中使用存储过程以及如何使用?
提前致谢
Gisella
答案 0 :(得分:0)
MongoDB的server-side JavaScript execution与存储过程不同。您只能从在服务器上执行的JavaScript上下文中调用它(例如db.eval,$ where,map / reduce)。
更典型的模式是使用计数器文档和原子$inc
函数来增加和获取ID。请参阅:How to Make an Auto Incrementing Field。