我的 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"
},
…
]
}
}
我需要从array_of_objects中获取一个具有指定名称的文档的特定 id 的对象。我使用 php 并尝试执行下一个代码:
$collection->find(array('name' => 'foo', 'object.array_of_objects.id' => 507));
它返回array_of_objects的所有元素,而不是id为507 的元素。之后我尝试使用 $elemMatch 进行查询:
$collection->find(array('name' => 'foo', 'object.array_of_objects' => array('$elemMatch' => array('id' => 507))));
但它的回报是一样的。:( 我的 MongoDB 版本 2.0.6。请帮忙。