mongoose自定义查找出来的字段的名字

1、 最近用node写点小应用。用的是mongoose。有一个小问题。没弄懂(对于英文文档理解可能不到位或者没看懂)。

例如:

let videoSchema = mongoose.Schema({
    videoId: {
        type: mongoose.Schema.Types.ObjectId
    },
    key: {
        type: String
    },
    author: {
        type: String
    },
    createTime: {
        type: Date,
        default: Date.now()
    },
    updateTime: {
        type: Date,
        default: Date.now()
    },
    title: {
        type: String,
        require: true
    }
})
module.exports = mongoose.model("video",videoSchema)

在这种情况下,使用video.find()查询出来的数据,是_id: xxxx以及其他的东西。
但是,我觉得直接将结果返回给前端很丑。尤其是哪个_id.例如,我想将查找出来的_id指定为videoId.不太清楚怎么操作。我目前是这样操作的。

    video.find({},(err, videos) => {
        videos.forEach(val => {
            val.videoId = val._id;
            delete val.id;
        })
    })

求一个正规方法。或者能告诉我在文档的哪个位置么?实在是没搞懂应该怎么弄才合适。

阅读 3.4k
3 个回答

video.aggregate().project({videoId :"$_id"}).exec();
这样就OK

video.find({},'-_id',function(err,doc){})
第二个参数是个字符串,加-不返回id,不加-只返回id,多个字段用空格分割
http://mongoosejs.com/docs/ap...

新手上路,请多包涵
推荐问题
宣传栏