例如,有一个名为“A”的组,它是一个数组。
还有另一个名为“B”的组位于“A”组内,也是一个数组。
我想查找和更新组“B”元素。
我尝试像在 jQuery 中一样查询链式查询。
db.collection.findOne({"group":"A"}).findOne({"society":"B"})
像这样的东西..
但这不起作用。但要点是我想查询组中的组元素。
有什么建议吗?
如果你给我特别是 PHP 实现方面的建议,那将非常有帮助
例如,有一个名为“A”的组,它是一个数组。
还有另一个名为“B”的组位于“A”组内,也是一个数组。
我想查找和更新组“B”元素。
我尝试像在 jQuery 中一样查询链式查询。
db.collection.findOne({"group":"A"}).findOne({"society":"B"})
像这样的东西..
但这不起作用。但要点是我想查询组中的组元素。
有什么建议吗?
如果你给我特别是 PHP 实现方面的建议,那将非常有帮助
也许我误解了一些东西,但是有什么问题:
db.collection.findOne({"group":"A", "society":"B"})
另请注意, findOne 仅返回一个文档。
假设您的文档看起来像这样:
db.mycol.insert( {
"_id": 1,
"group": "A",
"societies": [
{"society": "A", "name": "Alpha" },
{"society": "B", "name": "Beta" }
]
} );
然后在 Mongo shell 中,您可以使用查询检索所需的文档:
var group = db.mycol.findOne( { "group": "A" } );
然后使用一些客户端 JavaScript 进一步过滤其字段:
var societyB = group.societies.filter(function (val) {
return (val.society == "B");
} );
printjson(societyB);
您可以使用 PHP 驱动程序执行类似的操作。关键是分步执行操作:首先抓取您感兴趣的文档;然后过滤和操作它的字段;然后将其保存回数据库。