我需要在MongoDB中使用自动递增字段。 我找到了documentation on how to use a counter-collection in MongoDB。
但是,我的值不是_id,它不一定设置,我需要通过Doctrine ODM(我不太熟悉)使用它。如何通过Doctrine ODM使用反收集?
答案 0 :(得分: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());
...
答案 1 :(得分:2)
抱歉,我没有足够的意见发表评论。您可以使用自动增量字段而不使用计数器集合。您可以在Doctrine mongoDB文档类中使用INCREMENT
Doctrine Annotation marker作为您的feild变量。
见这里:http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/basic-mapping.html#identifiers