Предположим, что ваш документ выглядит примерно так:
db.mycol.insert( {
"_id": 1,
"group": "A",
"societies": [
{"society": "A", "name": "Alpha" },
{"society": "B", "name": "Beta" }
]
} );
Затем в оболочке Mongo вы можете получить нужный документ с помощью запроса:
var group = db.mycol.findOne( { "group": "A" } );
И затем отфильтроватьвниз по его полям, используя некоторый клиентский JavaScript:
var societyB = group.societies.filter(function (val) {
return (val.society == "B");
} );
printjson(societyB);
Вы можете сделать что-то подобное с драйвером PHP.Ключ состоит в том, чтобы выполнить действие в отдельных шагах: сначала захватите интересующий вас документ;затем фильтруйте и манипулируйте его полями;затем сохраните его обратно в базу данных.