私のMongoDBドキュメントの構造体があります:
{
_id : "12345",
name : "foo",
object : {
array_of_objects : [{
id : 507,
name : "some name",
dt : "2012-06-27 16:35:50"
},{
id : 506
name : "some other name",
dt : "2012-06-21 16:09:05"
},
…
]
}
}
指定された名前のドキュメントの特定のIDを持つarray_of_objectsからオブジェクトを取得する必要があります。私はphpを使用して、次のコードを実行しようとしました:
$collection->find(array('name' => 'foo', 'object.array_of_objects.id' => 507));
ID 507の要素ではなく、 array_of_objectsのすべての要素を返します。その後、$elemMatchを使用してクエリを実行しようとします。
$collection->find(array('name' => 'foo', 'object.array_of_objects' => array('$elemMatch' => array('id' => 507))));
しかし、それは同じように戻ってきました。:(私のMongoDBバージョン2.0.6。助けてください。