gpt4 book ai didi

php - 如何从特定 MongoDB 文档中的对象数组中获取特定对象?

转载 作者:可可西里 更新时间:2023-11-01 09:37:31 25 4
gpt4 key购买 nike

有我的 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 获取一个对象,该对象具有指定 name 文档的特定 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。请帮忙。

最佳答案

此问题已解决,并将在下一个稳定版本的 MongoDB 2.2 版中可用:https://jira.mongodb.org/browse/SERVER-828

我刚刚使用 MongoDB 2.1.2(不稳定,开发版本)进行了尝试:

示例文档:

{ "_id" : 1, "object" : { "array" : [ { "id" : 507, "name" : "Jenna" }, { "id" : 506, "name" : "Matt" } ] } } 

查询:

db.food.find({_id:1, "object.array.id":506},{_id:0, "object.array.$":1})

结果:

{ "object" : { "array" : [ { "id" : 506, "name" : "Matt" } ] } }

关于php - 如何从特定 MongoDB 文档中的对象数组中获取特定对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11250346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com