mongodb tutorial



একটি MongoDB সংগ্রহের প্রতিটি নথিতে নতুন ক্ষেত্র যুক্ত করুন (1)

আমি একটি বিদ্যমান সংগ্রহে প্রতিটি নথিতে একটি নতুন ক্ষেত্র যোগ করতে পারেন?

আমি একটি বিদ্যমান নথির ক্ষেত্রটি কিভাবে আপডেট করব তা জানি না তবে সংগ্রহের প্রতিটি নথিতে একটি নতুন ক্ষেত্র কীভাবে যোগ করব তা নয়। আমি কিভাবে mongo শেল এই কাজ করতে পারেন?


বিদ্যমান সংগ্রহের ক্ষেত্রটি আপডেট করার মতোই, $set বিদ্যমান থাকলে $set নতুন ক্ষেত্র যুক্ত করবে।

এই উদাহরণটি দেখুন:

> db.foo.find()
> db.foo.insert({"test":"a"})
> db.foo.find()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "test" : "a" }
> item = db.foo.findOne()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "test" : "a" }
> db.foo.update({"_id" :ObjectId("4e93037bbf6f1dd3a0a9541a") },{$set : {"new_field":1}})
> db.foo.find()
{ "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "new_field" : 1, "test" : "a" }

সম্পাদনা করুন:

যদি আপনি আপনার সমস্ত সংগ্রহে একটি নতুন_ফিল্ড যুক্ত করতে চান তবে আপনাকে খালি নির্বাচক ব্যবহার করতে হবে এবং সমস্ত নথি আপডেট করতে মাল্টি ফ্ল্যাগটি (শেষ প্যারামিটার) সেট করতে হবে

db.your_collection.update(
  {},
  { $set: {"new_field": 1} },
  false,
  true
)

সম্পাদনা করুন:

উপরের উদাহরণে শেষ ২ টি ক্ষেত্র false, true upsert এবং multi ফ্ল্যাগগুলি নির্দিষ্ট করে।

Upsert: সত্য সেট করা হলে, কোনও নথিটি ক্যোয়ারী মানদণ্ডের সাথে মেলে যখন একটি নতুন নথি তৈরি করে।

মাল্টি: সত্য হিসাবে সেট করা হলে, ক্যোয়ারী মানদণ্ড পূরণ করে এমন একাধিক নথি আপডেট করে। মিথ্যাতে সেট করলে, একটি নথি আপডেট করুন।

এটি 2.2 আগে মংডো versions জন্য। সর্বশেষ সংস্করণগুলির জন্য অনুসন্ধানটি একটু পরিবর্তিত হয়েছে

db.your_collection.update({},
                          {$set : {"new_field":1}},
                          {upsert:false,
                          multi:true}) 




nosql