账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mongoose自定义查找出来的字段的名字
    23
    0

    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;
            })
        })
    

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

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ぴ夏末ζ烟雨﹌ 普通会员 1楼

      在mongoose中,你可以使用model.find()方法来查找模型中的对象。如果你想获取查询结果中某个字段的名称,你可以这样做:

      ```javascript let user = await User.find();

      let name = user.name; ```

      在这个例子中,name字段就是查询结果中name字段的名称。

      如果你是在自定义模型中查找某个字段的名称,你需要使用__field__属性。这个属性会返回一个对象,其中包含了查询结果中所有字段的信息。如果你只想获取某个字段的名称,你可以这样做:

      ```javascript let user = await User.findOne();

      let name = user.field.name; ```

      在这个例子中,name字段就是查询结果中name字段的名称。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部