2017-03-28 3 views
0

多くのドキュメントを更新し、フィールドに配列値[1、2、3]を設定します。doctrine mongodb。配列の値をフィールドに設定することはできません

最後に、我々は、このソリューションを作ってみた:

[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 
         ) 

       ) 

     ) 

) 

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

しかし、生成されたクエリは、モンゴが失敗します

明らかに、これです。[$ each] => 1これは失敗に終わります。

ここで何がうまくいかないのかわかりません。クエリビルダーのバグですか、それとも正しい方法で使用していませんか?

我々は教義-のMongoDB 1.4と教義-ODM 1.1.3

アップデートを使用している:我々はそれがDocumentPersister.phpを次のように変更(追加参照での作業を取得するために管理してきましたin_arrayテストのための「$各」 ): enter image description here

+0

PHPのバージョンは何ですか?あなたは 'array(1,2,3)'を試すことができますか? – Veeram

+0

PHP 5.6.30、配列(1,2,3)に切り替えると差が生じません – user1312695

+0

plsが私の更新を見ます。私たちはそれを動作させるパッチを見つけました。 – user1312695

答えて

関連する問題