Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • MongoDB Documentation21টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • কেন Mongoose?
  • Installation
  • Connection
  • Schema
  • Model
  • Document
  • CRUD
  • Querying
  • Validation
  • Middleware
  • Population
  • Aggregation
  • Virtuals
  • Indexes
  • Error Handling
  • Update Operators
  • Transactions
  • Express Integration
  • Blog Project
  • Best Practices
  1. Docs
  2. MongoDB
  3. Virtual Properties
MongoDBIntermediate

Virtual Properties

কম্পিউটেড প্রপার্টি: virtual getter/setter ও toJSON-এ অন্তর্ভুক্তি — বাংলায়।

9টি অংশবাংলা ভাষায়

Virtual কী?

Virtual হলো এমন একটা property যা ডেটাবেসে save হয় না, কিন্তু runtime-এ অন্য field-গুলো থেকে computed হয় — যেমন fullName firstName + lastName থেকে।

Virtual getter

fullName virtualjs
js
const userSchema = new mongoose.Schema({
  firstName: String,
  lastName: String,
});

userSchema.virtual("fullName").get(function () {
  return this.firstName + " " + this.lastName;
});

const user = await User.findById(id);
console.log(user.fullName); // 'রহিম আহমেদ'
console.log(user.toObject().fullName); // আসবে না (নিচে দেখুন)

toJSON-এ virtual

API response-এ virtualjs
js
const userSchema = new mongoose.Schema(
  {
    firstName: String,
    lastName: String,
  },
  {
    toJSON: { virtuals: true }, // JSON-এও আসবে
    toObject: { virtuals: true },
  }
);

userSchema.virtual("fullName").get(function () {
  return this.firstName + " " + this.lastName;
});

// API-তে এখন clear output
res.json(user); // { ..., fullName: 'রহিম আহমেদ' }

Virtual setter

Set — UI থেকে splitjs
js
userSchema.virtual("fullName").set(function (value) {
  const parts = value.split(" ");
  this.firstName = parts[0];
  this.lastName = parts.slice(1).join(" ");
});

user.fullName = "রহিম আহমেদ";
console.log(user.firstName); // 'রহিম'
console.log(user.lastName);  // 'আহমেদ'
Virtual save হয় না

Virtual property ডেটাবেসে যায় না। এটি শুধু document instance-এ ও (proxy ছাড়াও) log/json-এ computed value দেখানোর জন্য। কিছু field persistently চাইলে schema-তে রাখুন।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরAggregation PipelineপরেরIndexes
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com