В драйвере PHP
Я рекомендую сделать это в вашем приложении. Используйте функции конкатенации PHP для добавления атрибута / ключа «полное имя» к объекту / массиву пользователя. Я бы держался подальше от карты / уменьшения / завершения, если только вам не понадобится выполнять какую-либо обработку на стороне базы данных или выбирать перед возвратом результатов. (А до этого, может быть, рассмотрим также where
запросов - http://www.mongodb.org/display/DOCS/Advanced+Queries.)
В доспехах
Если это разовый запрос и вы выполняете его в оболочке, есть два разных (но связанных) способа сделать это.
То, что вы используете, зависит от того, хотите ли только получить конкретное имя или если вы хотите, чтобы остальная часть документа сопровождала его. Например, если вам нужно только имя, вы можете сделать что-то вроде этого:
> db.show_concat.find().forEach( function (o) { print(o.fname + ' ' + o.lname); } )
john smith
jane doe
В противном случае, если вам нужны другие поля, вы можете сделать:
> db.show_concat.find().forEach( function (o) { o.full_name = o.fname + ' ' + o.lname; printjson(o); } )
{
"_id" : ObjectId("4cd6dabb5391d08d405bb0bb"),
"fname" : "john",
"lname" : "smith",
"full_name" : "john smith"
}
{
"_id" : ObjectId("4cd6daee5391d08d405bb0bc"),
"fname" : "jane",
"lname" : "doe",
"full_name" : "jane doe"
}