আমি ব্যবহার করছি Mongooseসংস্করণ 3 MongoDBসংস্করণ 2.2। আমি লক্ষ্য করেছি যে __vআমার MongoDBনথিগুলিতে একটি ক্ষেত্র প্রদর্শিত শুরু হয়েছে । সংস্করণ দিয়ে কিছু করা কি? এটি কীভাবে ব্যবহৃত হয়?
আমি ব্যবহার করছি Mongooseসংস্করণ 3 MongoDBসংস্করণ 2.2। আমি লক্ষ্য করেছি যে __vআমার MongoDBনথিগুলিতে একটি ক্ষেত্র প্রদর্শিত শুরু হয়েছে । সংস্করণ দিয়ে কিছু করা কি? এটি কীভাবে ব্যবহৃত হয়?
উত্তর:
থেকে এখানে :
versionKeyএকটি সম্পত্তি প্রতিটি দস্তাবেজের উপর সেট যখন প্রথম নকুল দ্বারা নির্মিত। এই কী মানটিতে নথির অভ্যন্তরীণ পুনর্বিবেচনা রয়েছে। এই নথির সম্পত্তিটির নামটি কনফিগারযোগ্য। ডিফল্ট হয়__v।আপনার অ্যাপ্লিকেশনের সাথে যদি এই বিরোধ হয় তবে আপনি এটি কনফিগার করতে পারেন:
new Schema({..}, { versionKey: '_somethingElse' })
__v === 0) এই সম্পত্তিটি নির্ধারণ করা কি নিরাপদ ?
query.select('-__v')। @ এক্সপ্লোশনপিলসগুলিতে আপনার পছন্দ মতো মংগস মিডলওয়্যার যুক্ত করা দরকার schema.pre('save', function (next) { this.increment(); next(); })।
ঠিক আছে, আমি টনির সমাধান দেখতে পাচ্ছি না ... তাই আমাকে নিজেই এটি পরিচালনা করতে হবে ...
আপনার যদি ভার্সন_কি প্রয়োজন না হয় তবে আপনি কেবল পারেন:
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
});
সংস্করণকে মিথ্যাতে সেট করা মানে দস্তাবেজটির আর সংস্করণ হয় না।
যদি দস্তাবেজটিতে সাব-ডকুমেন্টের একটি অ্যারে থাকে তবে এটি সমস্যাযুক্ত। সাব-ডকুমেন্টগুলির একটি মুছে ফেলা হতে পারে, অ্যারের আকার হ্রাস করে। পরে, অন্য ক্রিয়াকলাপটি অ্যারেতে সাবডোকামেন্টটি তার আসল অবস্থানে অ্যাক্সেস করতে পারে।
অ্যারে এখন ছোট হওয়ায় এটি ভুলবশত অ্যারেতে ভুল সাবডোসামেন্ট অ্যাক্সেস করতে পারে।
সংস্করণকী ডকুমেন্টটিকে একটি সংস্করণকির সাথে সংযুক্ত করে সমাধান করে যা মংগুজ অভ্যন্তরীণভাবে ব্যবহার করে এটি সঠিক সংগ্রহ সংস্করণে প্রবেশ করে কিনা তা নিশ্চিত করে।
আরও তথ্য এখানে পাওয়া যাবে: http://aaronheckmann.blogspot.com/2012/06/mongoose-v3-part-1-versioning.html
resultFromMongo.toObject({ versionKey: false })মান কল্পনা করতে, কল করতে পারেন ।
schema.set('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();
});
}
}