Я использую Mongoose
версию 3 с MongoDB
версией 2.2. Я заметил, что в моих MongoDB
документах появилось поле __v
. Это как-то связано с версированием? Как он используется?
Что такое поле "__v" в Mongoose?
Ответ 1
Из здесь:
versionKey
- это набор свойств для каждого документа при первом создании by Mongoose. Значение этого ключа содержит внутреннюю ревизию документ. Имя этого свойства документа настраивается. по умолчанию -__v
.Если это противоречит вашему приложению, вы можете настроить как таковой:
new Schema({..}, { versionKey: '_somethingElse' })
Ответ 2
Ну, я не вижу решения Тони... так что я должен сам справиться...
Если вам не нужна версия_key, вы можете просто:
var UserSchema = new mongoose.Schema({
nickname: String,
reg_time: {type: Date, default: Date.now}
}, {
versionKey: false // You should be aware of the outcome after set to false
});
Ответ 3
Мы можем использовать 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();
});
}
}