我很抱歉,如果这是非常简单的mongodb有关于汇总$ concat的文档,但我可能会误解其目的。我试图结合我的名字和姓氏属性。
LastName,FirstName
我还会在最后添加中间首字母,但我不想让事情复杂化。
var query = model.find(); //for simplicity I'm selecting all of them
query.aggregate({name:{$concat:['$LastName', ', ', '$FirstName']}})
query.exec(function(err, docs){
if(err) throw err; //trying to understand why this isn't working
})
这会导致获取此信息的路由返回状态500,但不会引发错误。我是以错误的方式来做这件事的。实际上 代码将输出限制为1000,因为数据库中有超过200,000个条目,如果mongoose可以为我做一些工作,那么将它们全部循环并将它们组合起来似乎有点愚蠢。
答案 0 :(得分:0)
我意识到我在使用聚合错误。我发现我可以使用虚拟来做同样的事情。
修改我的架构
var s = new Schema({//someschema},{
toObject:true,
toJSON:true
});
s.virtual('FullName').get(function(){
return this.LastName + ', ' + this.FirstName;
});
然后我在没有可以调用的聚合的情况下进行查询 doc.FullName // Last,First
谢谢你转到@JohnnyHK和他对Can't get Mongoose virtuals to be part of the result object
的回答