Sürüm 2.2 Mongoose
ile MongoDB
sürüm 3 kullanıyorum . Belgelerimde bir __v
alanın ortaya çıkmaya başladığını fark ettim MongoDB
. Sürüm oluşturma ile ilgili bir şey var mı? Nasıl kullanılır?
Sürüm 2.2 Mongoose
ile MongoDB
sürüm 3 kullanıyorum . Belgelerimde bir __v
alanın ortaya çıkmaya başladığını fark ettim MongoDB
. Sürüm oluşturma ile ilgili bir şey var mı? Nasıl kullanılır?
Yanıtlar:
Gönderen burada :
versionKey
İlk Gelincik yarattığı zaman her belge üzerinde ayarlanmış bir özelliktir. Bu anahtarlar değeri belgenin dahili revizyonunu içerir. Bu belge özelliğinin adı yapılandırılabilir. Varsayılan değer__v
.Bu, uygulamanızla çakışıyorsa, aşağıdaki gibi yapılandırabilirsiniz:
new Schema({..}, { versionKey: '_somethingElse' })
__v === 0
mi (örn. )?
query.select('-__v')
. @ ExplosionPills, mongoose ara katman yazılımı eklemeniz gerekir schema.pre('save', function (next) { this.increment(); next(); })
.
Tony'nin çözümünü göremiyorum ... bu yüzden kendim halletmek zorundayım ...
Version_key dosyasına ihtiyacınız yoksa, şunları yapabilirsiniz:
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
});
VersionKey öğesini false olarak ayarlamak, belgenin artık sürümlenmediği anlamına gelir.
Belgede bir dizi alt belge varsa bu sorunludur. Alt dokümanlardan biri silinebilir ve dizinin boyutu küçültülebilir. Daha sonra başka bir işlem dizideki alt belgeye orijinal konumunda erişebilir.
Dizi artık daha küçük olduğundan, yanlışlıkla dizideki yanlış alt belgeye erişebilir.
VersionKey, belgeyi doğru koleksiyon sürümüne eriştiğinden emin olmak için dahili olarak mongoose tarafından kullanılan bir versionKey ile ilişkilendirerek bunu çözer.
Daha fazla bilgi için: http://aaronheckmann.blogspot.com/2012/06/mongoose-v3-part-1-versioning.html
resultFromMongo.toObject({ versionKey: false })
Değeri aşmak için de arayabilirsiniz .
schema.set('versionKey', false);
Şema tanımında versionKey: false komutunu kullanabiliriz
'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();
});
}
}