mongoose添加时冒出的__V字段是怎么回事?
在为新课程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如果你还有兴趣了解更多,可以参考一下mongoose的官方文档:http://www.mongoosejs.net/docs/guide.html#versionKey
let UserSchema = mongoose.Schema({
name:String,
age:Number
},{versionKey: false})
版权声明
本文仅代表作者观点,不代表博信信息网立场。