2014-10-29 85 views
0

我想使用貓鼬做一個查詢查詢並獲取用戶的完整名稱返回的結果。現在,我有2個字段,firstName和lastName。當我查詢數據庫時,我想讓貓鼬連接firstName和lastName,並返回一個名爲fullName的字段。這可能與貓鼬?在Mongoose中使用虛擬來返回查詢中的全名

另一種方法是查詢數據庫,獲取結果,然後遍歷每個對象並在循環的每次迭代中分配fullName。我覺得有些事情我可以以某種方式使貓鼬虛聲化。

UserSchema 
.virtual('name.full') 
    .get(function() { 
    return this.name.firstName + ' ' + this.name.lastName; 
}); 

例子查詢:

User.find().exec() 
.then(function(data){ 
    console.log(data); //Should print out [{ _id: 123123232322, firstName:'john', lastName: 'Doe'}] 
    //I would like it to print out: [{ _id: 123123232322, firstName:'john', lastName: 'Doe', fullName: 'John Doe'}] 
}); 

回答

1

你可以有虛函數通過設置UserSchema{ getters: true }toObject選項出現在console.log輸出:

UserSchema.set('toObject', { getters: true });