我正在使用异步循环来遍历给定的结果,当我这样做时,我无法获得虚拟键" name"在迭代中。
欢迎任何解决方案,我对这个问题感到困惑。
var result_subscriptions_of_user = _.where(data.subscription_details,{' user_id&#39 ;: subscription_detail.user_id});
//值来自result_subscriptions_of_user
//迭代用户订阅详情
async.eachSeries(result_subscriptions_of_user,function iteratee(subscription_user_detail,callback) { //这里subscription_user_detail没有出现
我在这里做错了什么
我的架构 var subscription_schema = new db.schema({
subscription_id:数字,
created_on:{type:Date,default:Date.now},
created_by:object_id,
provisioned_on:日期,
expiry_date:日期,
status:String,
}, {toObject:{virtuals:true,getters:true},toJSON:{virtuals:true,getters:true}});
,我的虚拟功能是
subscription_schema.virtual('actual_expiry_date').get(function ()
{
var moment = require('moment-timezone');
var date = moment(this.expiry_date).format('DD-MM-YYYY');
return date;
})
答案 0 :(得分:0)
请注意,如果生成的记录转换为对象或JSON,则默认情况下不包括虚拟。将virtuals:true传递给toObject()或toJSON()以返回它们。您需要像这样设置userSchema
userSchema.set('toObject', { virtuals: true })
检查此{{3}}