【问题标题】:Doctrine 2, Mongo DB, Query Builder - how to define multiple equals values for a single field?Doctrine 2, Mongo DB, Query Builder - 如何为单个字段定义多个等于值?
【发布时间】:2016-01-28 00:29:59
【问题描述】:

参考文档:

http://doctrine-orm.readthedocs.org/projects/doctrine-mongodb-odm/en/latest/reference/query-builder-api.html#getting-single-result

我想为单个字段指定多个值,但不知道该怎么做?

这是文档中的一个示例:

<?php

$user = $dm->createQueryBuilder('User')
    ->field('username')->equals('jwage')
    ->getQuery()
    ->getSingleResult();

我想获取“用户名”不仅匹配“jwage”而且还匹配另一个用户名的文档,例如“拇指”。将数组或逗号分隔的字符串传递给 equals 似乎很直观,就像使用 select() 一样,但似乎都不起作用。也许我忽略了一些领域?

非常欢迎任何建议。

【问题讨论】:

    标签: php mongodb symfony doctrine-orm doctrine


    【解决方案1】:

    您需要使用另一种方法:

    $user = $dm->createQueryBuilder('User')
               ->field('username')->in(array('jwage', 'tthumb'))
               ->getQuery()
               ->getSingleResult();
    

    但由于它是一个期望单个结果的查询,您必须确保该查询将只返回一个结果。在其他情况下,它会抛出一个错误。

    【讨论】:

    • 啊,是的,当然,完全有道理。谢谢,这是正确的。为了取回多个结果,我在他们的文档的示例中使用了 execute() 而不是 getSingleResult()。再次感谢! :)
    猜你喜欢
    • 2018-11-08
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    相关资源
    最近更新 更多