我使用Mongoose版本3和MongoDB版本2.2。我注意到一个__v字段已经开始出现在我的MongoDB文档。这与版本控制有关吗?它是如何使用的?
当前回答
在NestJS中删除需要添加选项Schema()装饰器
@Schema({ versionKey: false })
其他回答
它是版本键。每当有新的更新时,它就会更新。我个人不喜欢禁用它。
如果你想了解更多,请阅读这个解决方案 [1]:猫鼬版本:什么时候关闭它是安全的?
我们可以在模式定义中使用versionKey: false
'use strict';
const mongoose = require('mongoose');
export class Account extends mongoose.Schema {
constructor(manager) {
var trans = {
tran_date: Date,
particulars: String,
debit: Number,
credit: Number,
balance: Number
}
super({
account_number: Number,
account_name: String,
ifsc_code: String,
password: String,
currency: String,
balance: Number,
beneficiaries: Array,
transaction: [trans]
}, {
versionKey: false // set to false then it wont create in mongodb
});
this.pre('remove', function(next) {
manager
.getModel(BENEFICIARY_MODEL)
.remove({
_id: {
$in: this.beneficiaries
}
})
.exec();
next();
});
}
}
如果您不需要版本键,可以禁用它。
请看这个例子:
var User = new mongoose.Schema({
FullName:{
type :String,
},
BirthDay:{
type :String,
},
Address:{
type :String,
},
Gender:{
type:String,
},
PhoneNumber:{
type:Number,
ref:'Account'
},
AccountID:{
type: Schema.Types.ObjectId,
ref: 'Account'
},
UserName:{
type:String,
ref:'Account'
}
},{collection:'User',
versionKey: false //here
});
__v字段称为版本键。它描述了文档的内部修订。__v字段用于跟踪文档的修订。默认值为0 (__v:0)。
如果你不想使用这个版本键,你可以像mongoose一样使用versionKey: false。模式参数。
你可以按照这个例子…
const mongoose = require('mongoose');
const userSchema = mongoose.Schema(
{
name: {
type: String,
require: true
},
email: {
type: String,
unique: true
},
password: {
type: String,
}
},
{
timestamps: true,
versionKey: false, // Here You have to add.
}
)
module.exports = mongoose.model('tbl_user', userSchema)
在NestJS中删除需要添加选项Schema()装饰器
@Schema({ versionKey: false })
推荐文章
- 错误:无法找到模块“webpack”
- 在node.js中使用async / await文件系统
- NodeJS -用NPM安装错误
- 如何为本地安装npm包设置自定义位置?
- 回调函数来处理管道的完成
- Express函数中的“res”和“req”参数是什么?
- node.js TypeError:路径必须是绝对路径或指定根路径到res.sendFile[解析JSON失败]
- Passport.js -错误:序列化用户到会话失败
- Node.js vs .Net性能
- 从电子应用程序中删除菜单栏
- 如何用node.js实现一个安全的REST API
- 如何处理Node.js中的循环依赖
- 在猫鼬,我如何排序的日期?(node . js)
- 如何在Node.js内进行远程REST调用?旋度吗?
- 将映像存储在MongoDB数据库中