我正在查询一组文档的集合,但在结果集中我只希望有2个字段与空格连接。我如何使用node / express env中的mongoosejs来实现这一点?
答案 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 *);