学说mongodb。无法将数组值设置为字段

时间:2017-03-28 15:13:36

标签: mongodb doctrine

我们要更新许多文档并为字段设置数组值[1,2,3]。

最后我们提出了这个解决方案:

$qb->updateMany()->field('targetGeo')->addToSet($qb->expr()->each([1,2,3]));

然而,生成的查询使mongo失败:

[MongoWriteConcernException] localhost:27017: The argument to $each in $addToSet must be an array but it was of type NumberLong64

调试查询给我们:

Array (
    [type] => 5
    [multiple] => 1
    [query] => Array
        (
        )

    [newObj] => Array
        (
            [$addToSet] => Array
                (
                    [targetGeo] => Array
                        (
                            [$each] => 1
                        )

                )

        )

)

显然,这是 [$ each] => 1 ,这使它失败。

我们无法弄清楚这里出了什么问题。它是查询构建器中的错误还是我们没有以正确的方式使用它?

我们使用的是doctrine-mongodb 1.4和doctrine-odm 1.1.3

更新:我们设法让它在DocumentPersister.php中使用以下更改(请参阅为in_array测试添加'$ each'): enter image description here

1 个答案:

答案 0 :(得分:0)