原则 ODM - 如何通过传递字段名称在我的文档中设置值


Doctrine ODM - how to set a value in my document by passing the name of the field

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

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

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

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

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