【问题标题】:Doctrine ODM - how to set a value in my document by passing the name of the fieldDoctrine ODM - 如何通过传递字段名称在我的文档中设置值
【发布时间】:2016-02-04 09:26:05
【问题描述】:

我有一个名为 User 的 MongoDB 文档。我还有一个包含所有可能的“可更新”字段的数组(这是用于第三方可以通过发送请求来更新我的数据库中的字段的 API)。我想做类似的事情:

$user_document->set(array($field => $value));
$document_manager->flush();

其中$user_document是FindOneBy获取的文档,$field$value是API请求的值。这不起作用。如何手动将值插入给定字段?我不想使用 setFieldName 方法,因为有很多字段,我想将它们保存在一个数组中。

【问题讨论】:

    标签: php mongodb symfony doctrine-orm doctrine-odm


    【解决方案1】:

    我已经解决了问题,这是正确的方法:

    $result = $document_manager
        ->createQueryBuilder('AppBundle:User')
        ->findAndUpdate()
        ->returnNew()
        ->field($field)->set($value)
        ->field('id')->equals($given_id)
        ->getQuery()
        ->execute();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      • 1970-01-01
      • 2014-03-20
      • 1970-01-01
      • 2014-09-09
      • 2012-07-03
      相关资源
      最近更新 更多