Doctrine ODM:获取特定字段的数组

时间:2017-03-15 17:37:25

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

因此,问题是在一个数组中获取id(或任何其他字段),例如:

DecimalFormat df = new DecimalFormat("0.00");
for(int c : celsius) {
    System.out.print(c);
    System.out.print("\t" + df.format(getKelvin(c)));
    System.out.print("\t" + df.format(getFahr(c)));
    System.out.print("\t" + df.format(rea(c)));
    System.out.println("");
}

我试图通过下一个查询来接受它:

[
    "someId1",
    "someId2",
    "someId3",
]

但我没有采取我想要的东西,但接近这个:

$this->createQueryBuilder()
        ->select('_id')
        ->hydrate(false)
        ->getQuery()
        ->toArray()

(我使用策略INCREMENT)。我尝试通过map,reduce来做到这一点,但我明白我对这些函数一无所知:)。那么有人可以帮助我吗?

P.S:我知道如何用PHP函数实现这一点,比如112 => array:1 [ "_id" => 112 ] 113 => array:1 [ "_id" => 113 ] 114 => array:1 [ "_id" => 114 ] 。但是我真的想知道如何通过mongoDB来实现它,特别是在使用createQueryBuilder的ODM中

1 个答案:

答案 0 :(得分:0)

这通常可以通过创建自定义保湿器来完成。您可以查看此示例并尝试将其调整为ODM https://gist.github.com/Tom32i/7984541