是否可以在mongoose聚合返回值中使用模式方法?

时间:2017-10-13 07:23:07

标签: node.js mongoose aggregation-framework

我有一个特殊的情况,我使用聚合。但是我无法在聚合的返回值中使用模式方法。 有没有办法解决这个问题?

示例来源:

服务器:

itemSchema = new Schema({
    name: String,
    seller: ObjectId,
    category: String,
    price: Number,
    ....
});
itemSchema.methods = {
    getPriceToString(){
        return this.price.toString()
    }
    ...
}

let delay = 1000*60*60*24*30*5;
let item = yield item.aggregate({
{
    {
        $project:
        {
            "_id": 1,
            ...
            "created_at" : {
                $cond: { 
                    if: { ... }, 
                    then: {$subtract:["$created_at",delay]},
                    else: "$created_at" }
            }
        }
    },
    {
        $lookup: {
            "from": 'users',
            "localField": 'seller',
            "foreignField": '_id',
            "as": 'seller'
        },
    },
    {
        $sort:
        {
            'created_at' : -1
        }
    },
    {
        $limit: 40
    }
]).exec();
res.send({item:item});

前:

...
a(...)=item.seller.username
...
h2=item.getPriceToString()

错误:

item.getPriceToString不是函数

0 个答案:

没有答案