Javascript 使用虚拟主机在Mongoose中返回查询的全名
我想用mongoose执行一个查找查询,并得到返回的带有用户全名的结果。现在,我有两个字段,firstName和lastName。当我查询数据库时,我希望mongoose连接firstName和lastName,并返回一个名为fullName的字段。猫鼬能做到这一点吗 另一种方法是查询数据库,获得结果,循环每个对象,并在循环的每次迭代中指定全名。我觉得有一种方法可以利用猫鼬的虚拟空间Javascript 使用虚拟主机在Mongoose中返回查询的全名,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我想用mongoose执行一个查找查询,并得到返回的带有用户全名的结果。现在,我有两个字段,firstName和lastName。当我查询数据库时,我希望mongoose连接firstName和lastName,并返回一个名为fullName的字段。猫鼬能做到这一点吗 另一种方法是查询数据库,获得结果,循环每个对象,并在循环的每次迭代中指定全名。我觉得有一种方法可以利用猫鼬的虚拟空间 UserSchema .virtual('name.full') .get(function () {
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'}]
});
通过将
UserSchema
上的选项设置为{getters:true}
,可以在控制台中显示virtuals.log
输出:
UserSchema.set('toObject', { getters: true });