কম্পিউটার টিউটোরিয়াল

MongoDB-এ আংশিক ডেটা ডিলিট করা


স্পেসিফিক ডকুমেন্ট ডিলিট: remove() + skip()

MongoDB-এ নির্দিষ্ট পজিশন থেকে শুরু করে ডকুমেন্ট ডিলিট করতে (পার্শিয়াল ডিলিট) find().skip().toArray() দিয়ে আইডি সংগ্রহ করে remove() দিয়ে ডিলিট করা হয়।

নমুনা ডেটা তৈরি (৭টি ডকুমেন্ট)

> db.demo488.insertOne({ "Name": "Chris" })
> db.demo488.insertOne({ "Name": "David" })
> db.demo488.insertOne({ "Name": "Bob" })
> db.demo488.insertOne({ "Name": "Mike" })
> db.demo488.insertOne({ "Name": "Sam" })
> db.demo488.insertOne({ "Name": "John" })
> db.demo488.insertOne({ "Name": "Robert" })

সমস্ত ডকুমেন্ট দেখানো

> db.demo488.find()

আউটপুট: ৭টি ডকুমেন্ট (Chris, David, Bob, Mike, Sam, John, Robert)

৪ নম্বর থেকে বাকি সব ডিলিট (৫ম, ৬ষ্ঠ, ৭ম)

> var deleteData = db.demo488.find({}, { _id: 1 }).skip(4).toArray().map(function(d) { return d._id; })
> db.demo488.remove({ _id: { $in: deleteData } })

ফলাফল:

WriteResult({ "nRemoved": 3 })

আবার ফাইন্ড

> db.demo488.find()

ফলাফল: শুধু প্রথম ৪টি (Chris, David, Bob, Mike)

ব্যাখ্যা

  1. find({}, { _id: 1 }): শুধু _id ফিল্ড নিয়ে সব ডকুমেন্ট
  2. .skip(4): প্রথম ৪টি বাদ দিয়ে (অফসেট)
  3. .toArray(): অ্যারে-এ রূপান্তর
  4. .map(...): শুধু _id মানগুলো বের করে
  5. remove({ _id: { $in: deleteData } }): সংগৃহীত আইডি গুলো ডিলিট করে
  6. ⚠️ সতর্কতা ও আধুনিক বিকল্প

    • remove() ডিপ্রিকেটেড (MongoDB 3.2+), deleteMany() ব্যবহার করুন
    • skip() বড় অফসেটে ধীর (ইন্ডেক্স স্ক্যান করে না)
    • বেটার প্যাটার্ন: টাইমস্ট্যাম্প বা _id রেঞ্জ দিয়ে ডিলিট করুন: deleteMany({ _id: { $gt: lastKeptId } })
    • save() ও remove() লিগেসি মেথড, নতুন প্রজেক্টে এড়িয়ে চলুন
  1. আইফোনে স্ক্রিন টাইম ডেটা ডিলিট করার পদ্ধতি

  2. JSP-এ Session ডেটা ডিলিট করা

  3. জাভা ব্যবহার করে MongoDB ডকুমেন্ট কীভাবে ডিলিট করবেন?

  4. গুগল ডেটা নিরাপদে ডিলিট করুন - জিমেইল, ড্রাইভ এবং ইউটিউব রাখুন