学说odm mongo和存储过程

时间:2012-07-17 16:26:09

标签: mongodb stored-procedures doctrine-odm

我已将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

1 个答案:

答案 0 :(得分:0)

MongoDB的server-side JavaScript execution与存储过程不同。您只能从在服务器上执行的JavaScript上下文中调用它(例如db.eval,$ where,map / reduce)。

更典型的模式是使用计数器文档和原子$inc函数来增加和获取ID。请参阅:How to Make an Auto Incrementing Field