无法在学说 mongo 查询中增加值
Posted
技术标签:
【中文标题】无法在学说 mongo 查询中增加值【英文标题】:Unable to increment value in a doctrine mongo query 【发布时间】:2013-02-24 23:02:54 【问题描述】:看例子:http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/query-builder-api.html
我无法进行简单的增量。那就是“票”的价值永远不会改变。我的文档 ID ($postID) 是正确的,我可以获取该文档。只是无法增加。为什么 Mongo 的文档这么乱??
$postID = "5121d0ad253b4af1d8000001";
$dm = $this->get('doctrine.odm.mongodb.document_manager');
$post = $dm->createQueryBuilder('MainPostsBundle:Post')
->field('id')->equals($postID)
->field('votes')->inc(1)
->getQuery()->execute();
【问题讨论】:
尝试在你的$dm->createQueryBuilder('MainPostsBundle:Post')
之后添加->update()
juste
确实有效。但是,我真的希望能够在同一个声明中获得投票的价值。那是一条更新/选择语句
你的$post
有什么?
我检查过 :) 这是一个布尔值。令人沮丧的是,文档让您假设您可以在一个语句中进行更新/选择。
我不确定所有数据库实现(mysql、PostGreSql...等)都支持 UPDATE RETURNING 值。但是在更新后进行第二次查询(选择)并不可耻。
【参考方案1】:
findAndModify 两者都做(见http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/find-and-update.html)
【讨论】:
以上是关于无法在学说 mongo 查询中增加值的主要内容,如果未能解决你的问题,请参考以下文章