2

我需要 MongoDB 中的自动递增字段。我找到了有关如何在 MongoDB 中使用反集合的文档

但是,我的值 id 不是 _id,它不一定是设置的,我需要通过 Doctrine ODM 使用它(我不太熟悉)。我如何通过 Doctrine ODM 使用反集合?

4

2 回答 2

3

不是我所希望的,但分两步完成是我找到的唯一解决方案:

$counter = $dm->createQueryBuilder('Documents\Counter')
->findAndUpdate()
->returnNew()
->field('name')->equals('order_number')
->field('count')->inc(1)
->getQuery()
->execute();

然后在另一个文档中使用返回值:

$order = $dm->getRepository('Documents\Order')->findOneBy(array('id' => <some_id>));
$order->setOrderNumber($counter->getCount());
...
于 2013-05-31T07:21:18.937 回答
2

对不起,我没有足够的评论点。您可以在不使用计数器集合的情况下拥有一个自动增量字段。您可以在 Doctrine mongoDB 文档类中为您的 feild 变量使用INCREMENT Doctrine Annotation 标记。见这里:http ://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/basic-mapping.html#identifiers

于 2013-12-23T08:40:23.187 回答