学堂 学堂 学堂公众号手机端

mongoose添加时冒出的__V字段是怎么回事?

lewis 1年前 (2024-03-13) 阅读数 6 #技术

在为新课程express+MongoDB 备课的时候,复习mongoose的增删改查的时候,发现用模型添加数据的时候会额外自己新加了一个 __V 字段。

const express = require("express")
const Routermanger = express()
const mongoose = require("mongoose")
mongoose.connect("mongodb://localhost/nodecms")

//定义 Schema
let UserSchema = mongoose.Schema({
name:String,
age:Number
})

//创建模型
let users = mongoose.model("Users",UserSchema);
let adduser = new users({
name:"马X腾",
age:51
})
adduser.save((err)=>{
if(err){
res.send("添加失败",err)
return;
}

res.send("添加成功")
})

-这个时候完成添加一条数据库记录,本来只有name和age字段,最后却多了一个 __V字段。


这个 __v字段是做什么用的呢?

mongoose在保存数据如果不进行配置的时候会自动多一个__v字段,他的全称叫,versionKey是 Mongoose 在文件创建时自动设定的。

这个值包含文件的内部修订号。versionKey是一个字符串,代表版本号的属性名, 默认值为__v。如果这个值与你的计划冲突,你可以设定为其他名称。当然也可以不要让他自动加这个__v字段,只要进行如下配置:

//定义 Schema
let UserSchema = mongoose.Schema({
name:String,
age:Number
},{versionKey: false})
如果你还有兴趣了解更多,可以参考一下mongoose的官方文档:​​http://www.mongoosejs.net/docs/guide.html#versionKey​​
版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门