toObject()关于聚合方法

时间:2017-10-18 11:27:37

标签: node.js mongodb mongoose

由于aggregate方法返回结果对象而不是mongoose模型,我不知道如何应用toObject()来转换结果中的字段。

但是,find()返回一个mongoose模型,toObject()根据我的要求转换字段。

任何指向更改aggregate()方法以返回mongoose模型或在aggregate()结果上调用toObject()的指针都会有所帮助。

下面的代码返回一个Mongoose模型,我可以在其上调用toObject()

return model.find(
{
    loc: {
        $nearSphere: {
            $geometry: this.loc,
            $maxDistance: radiusInKm * 1000 
        }
    }
},
cb
);

下面的代码是聚合返回结果对象

return model.aggregate()
.near({

    near: this.loc,// this.loc already has a variable of type point.
    distanceField: "dist.calculated",
    maxDistance: radiusInKm * 1000,
    includeLocs: "dist.location",
    spherical: true

}).exec(cb);

我想调用toObject(),因为我需要转换结果,如下所示

mySchema.options.toObject.transform = function (doc, ret) {

    ret.latitude = ret.loc.coordinates[1];
    ret.longitude = ret.loc.coordinates[0];
    for (var i = 0; i < doc.storeImages.length; i++) {
        ret.storeImages[i] = config.get("cdn.mediaURL") + doc.storeImages[i];
    }
    delete ret.loc;
    delete ret.__v;
}

0 个答案:

没有答案