mongoDB连接结果

mongoDB连接结果,mongodb,Mongodb,在MongoDB中连接结果的最佳方法是什么?特别是PHP驱动程序?我需要使用mapReduce吗 在mySQL中,我会这样做:从用户中选择CONCAT(fname,,,lname)作为名称,但在mongo中,我似乎找不到一种简单的方法来实现这一点。在PHP驱动程序中 我建议您在应用程序中执行此操作。使用PHP的连接特性向用户对象/数组添加“fullname”属性/键。除非在返回结果之前需要进行一些数据库端处理或选择,否则我不会使用map/reduce/finalize。(在此之前,还可以查看wh

在MongoDB中连接结果的最佳方法是什么?特别是PHP驱动程序?我需要使用mapReduce吗

在mySQL中,我会这样做:从用户中选择CONCAT(fname,,,lname)作为名称,但在mongo中,我似乎找不到一种简单的方法来实现这一点。

在PHP驱动程序中 我建议您在应用程序中执行此操作。使用PHP的连接特性向用户对象/数组添加“fullname”属性/键。除非在返回结果之前需要进行一些数据库端处理或选择,否则我不会使用map/reduce/finalize。(在此之前,还可以查看
where
查询-)

在壳里 如果这是一个一次性查询,并且您在shell中进行查询,那么有两种不同的(但相关的)方法来实现

您使用哪一个很大程度上取决于您是只希望使用concat-ed名称,还是希望文档的其余部分与之匹配。例如,如果您只需要名称,可以执行以下操作:

> 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"
}

您可以使用聚合、$project和$concat:

应该是这样的:

db.show_concat.aggregate(
   [
      { $project: { full_name: { $concat: [ "$fname", " - ", "$lname" ] } } }
   ]
)