多くのドキュメントを更新し、フィールドに配列値[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テストのための「$各」 ):
PHPのバージョンは何ですか?あなたは 'array(1,2,3)'を試すことができますか? – Veeram
PHP 5.6.30、配列(1,2,3)に切り替えると差が生じません – user1312695
plsが私の更新を見ます。私たちはそれを動作させるパッチを見つけました。 – user1312695