如何在mongoosejs结果集中连接两个字段

时间:2014-02-09 14:23:34

标签: node.js mongodb mongoose

我正在查询一组文档的集合,但在结果集中我只希望有2个字段与空格连接。我如何使用node / express env中的mongoosejs来实现这一点?

1 个答案:

答案 0 :(得分:2)

除非您使用聚合框架,否则最好在客户端上处理连接值。

最简单的方法是使用Mongoose虚拟机,或者您可以根据需要在Node.JS JavaScript代码中对客户端进行必要的连接。 (要查找具体文档,请转到this页面并搜索“虚拟”。)

该网页上的示例基本上是您想要的:

var personSchema = new Schema({
  name: {
    first: String,
    last: String
  }
});

// compile our model
var Person = mongoose.model('Person', personSchema);

// create a document
var bad = new Person({
    name: { first: 'Walter', last: 'White' }
});

然后,添加虚拟:

personSchema.virtual('name.full').get(function () {
  return this.name.first + ' ' + this.name.last;
});

您也可以通过仅选择执行连接所需的fields来限制结果(通过使用您希望从数据库返回的字段的空格分隔列表来指定):

Person.find({last: 'White'}, 'first last').exec(/* callback *);