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

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

我试着通过下一个问题来回答:
$this->createQueryBuilder()
        ->select('_id')
        ->hydrate(false)
        ->getQuery()
        ->toArray()

但我没有得到我想要的,而是在这附近:
112 => array:1 [
  "_id" => 112
]
113 => array:1 [
  "_id" => 113
]
114 => array:1 [
  "_id" => 114
]

(我使用策略增量)。我试着用map,reduce来实现这一点,但我明白我对这些函数一无所知:)。有人能帮我吗?
P.S:我知道如何用php函数实现这一点,比如array_keys | array_values。但我真的很想知道MongoDB是如何做到的,特别是在带有CreateQueryBuilder的ODM中

最佳答案

这通常可以通过创建一个自定义的水合器来完成。您可以看一看这个示例,并尝试将其改编为odmhttps://gist.github.com/Tom32i/7984541

10-06 13:06