如何实现虚拟以及异步循环

时间:2016-05-20 13:21:19

标签: node.js mongodb mongoose

我正在使用异步循环来遍历给定的结果,当我这样做时,我无法获得虚拟键" 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;  
})

1 个答案:

答案 0 :(得分:0)

请注意,如果生成的记录转换为对象或JSON,则默认情况下不包括虚拟。将virtuals:true传递给toObject()或toJSON()以返回它们。您需要像这样设置userSchema

userSchema.set('toObject', { virtuals: true })

检查此{{3}}