মংগোডিবি কনসোলে _id দ্বারা সরান


137

মঙ্গোডিবি কনসোলে আমি কীভাবে আইডি দ্বারা কোনও রেকর্ড সরিয়ে ফেলতে পারি? এখানে আমার সংগ্রহ:

[ 
  {
     "_id" : { "$oid" : "4d512b45cc9374271b02ec4f" },
     "name" : "Gazza"
  },
  {
     "_id" : { "$oid" : "4d513345cc9374271b02ec6c" },
     "name" : "Dave",
     "adminOf" : { },
     "email" : "email@email.com"
  }
]

এবং এখানে আমি যে আদেশগুলি চেষ্টা করেছি তা কার্যকর হয় না:

db.test_users.remove( {"_id":{"$oid":new ObjectId("4d512b45cc9374271b02ec4f")}});
db.test_users.remove( {"_id":{"$oid":"4d513345cc9374271b02ec6c"}});
db.test_users.remove( {"_id":"4d512b45cc9374271b02ec4f"});
db.test_users.remove( {"_id":new ObjectId("4d512b45cc9374271b02ec4f")});

নাম দ্বারা সরানো কাজ করে:

db.test_users.remove( {"name":"Gazza"});

এটি যদি mogodb.org এ ব্রাউজারের শেলের মধ্যে থাকে তবে যদি কোনও পার্থক্য আসে

ধন্যবাদ


আমি কলব্যাক যোগ না করা পর্যন্ত কোনও সমাধানই আমার পক্ষে কাজ করেনি: db.test_users.remove ({"_id": '4d512b45cc9374271b02ec4f'}, ফাংশন (ভুল, ডেটা) {});
rttmax

উত্তর:


272

খুব কাছে. এটি কাজ করবে:

db.test_users.deleteOne( {"_id": ObjectId("4d512b45cc9374271b02ec4f")});

যেমন আপনার অবজেক্টআইডের জন্য নতুন দরকার নেই ।

এছাড়াও, মনে রাখবেন যে কিছু ড্রাইভার / সরঞ্জাম, remove()বর্তমানে অবচিত হয়েছে এবং deleteOneবা deleteManyপরিবর্তে ব্যবহার করা উচিত।


4
এটি _id db.test_users.remove ({_id: ObjectId ("4d512b45cc9374271b02ec4f")}) এর কাছাকাছি উদ্ধৃতি ছাড়াও কাজ করবে;
alfonsodev

আমি এটি চেষ্টা করেছি: টাইমএন্ডস্পেস.রেমোভ ({"_id": অবজেক্টআইড ("8 বিডি 2 ডিজেড 77০LXejYNrL")}); ... এবং আমি পেয়েছি, "অপ্রকাশিত রেফারেন্স এরিয়ার: অবজেক্টআইডটি <নামবিহীন>: 2: 13" এ সংজ্ঞায়িত করা হয়নি
বি ক্লে শ্যানন

@ বিলে অবজেক্ট আইডি হেক্সাডেসিমাল ইনপুট আশা করে (সম্ভবত লোয়ারকেস) তাই এটি অন্যদের মধ্যে এক্স, জেড অক্ষরগুলিতে ব্যর্থ হয়।
নিক কোটরেল

2
এটি _ অযৌক্তিক।
গাই

যদি _idক্ষেত্রের স্বয়ংক্রিয়ভাবে উত্পন্ন করা হয় না (যেমন এটি একটি অবজেক্ট-না, কিন্তু একটি স্ট্রিং), আপনি শুধু মান লিখতে পারেন _idউদ্ধৃতি চিহ্ন অধীনে: db.your.database.remove({"_id": "your value"})
আলেকসান্দার

16

উত্তরটি হ'ল mongodb.org এ ওয়েব কনসোল / শেলটি অন্যরকম আচরণ করে এবং আমি যেমনটি আশা করেছিলাম তেমন নয়। বাড়িতে ইনস্টল করা সংস্করণটি সমস্যা ছাড়াই নিখুঁতভাবে কাজ করেছে; ওয়েব শেলটিতে _id উত্পাদিত অটোটি এভাবে সংরক্ষণ করা হয়েছিল:

"_id" : { "$oid" : "4d512b45cc9374271b02ec4f" },

বাড়িতে একই নথির সেটআপ এবং অটো উত্পন্ন _id এর মতো সংরক্ষণ করা হয়েছিল:

"_id" : ObjectId("4d5192665777000000005490")

সমস্যাগুলি ছাড়াই উত্তরগুলির বিরুদ্ধে প্রশ্নগুলি কাজ করেছিল।


1
আপনি কি নিশ্চিত যে বিএসএন নথিতে তারা আলাদাভাবে সংরক্ষণ করেছেন? এই পার্থক্যগুলি দেখতে দেখতে ক্লায়েন্টটি কেবল আউটপুটটিকে আলাদাভাবে ফর্ম্যাট করে।
নিক কোটারেল

13

ঠিক আছে, _ID আপনার উদাহরণের মধ্যে একটি বস্তু, সুতরাং আপনাকে কেবল একটি অবজেক্ট পাস করতে হবে

'db.test_users.remove({"_id": { "$oid" : "4d513345cc9374271b02ec6c" }})'

এই কাজ করা উচিত

সম্পাদনা করুন: পেরেল এটি সংকলিত হয়েছে তা নিশ্চিত করার জন্য পিছনে পেরেন যুক্ত করা হয়েছে।


আমি চেষ্টা করেছিলাম এটিও রেকর্ডটি সরিয়ে দেয়নি: db.test_users.remove ({"_id": {"$ oid": "4d513345cc9374271b02ec6c"}}); PS: এটি দেখানোর জন্য প্রশ্ন আপডেট করেছে
টাইপো জনসন

আপনার প্রশ্নে আপনি বলেছিলেন যে আপনি এটি চেষ্টা করেছেন: db.test_users.remove ({"_id": {"$ oid": নতুন অবজেক্টআইড ("4d512b45cc9374271b02ec4f")}});
দিমিত্রি

হ্যাঁ, আমি এখনই প্রশ্নটি আপডেট করেছি ধন্যবাদ, আমি উভয় চেষ্টা করেছি এবং উভয়ই কাজ করি না। সম্ভবত এটি কারণ আপনি একটি উপ সম্পত্তি মুছতে পারবেন না?
টাইপো জনসন

এই উপায়টি ব্যবহার করে "অজানা অপারেটর: id ওড"
আরমান ওরতেগা

13

আপনি যদি আইডির একটি তালিকা দ্বারা মুছে ফেলতে চান তবে এটি দুর্দান্ত কাজ করে।

db.CollectionName.remove({
    "_id": {
        $in: [
            ObjectId("0930292929292929292929"),
            ObjectId("0920292929292929292929")
        ]
     }
}) 

6

আপনার কি প্রতিরূপ সেটে একাধিক মংডোব নোড রয়েছে?

আমি পেয়েছি (আমি রোবমঙ্গো গুই মঙ্গো শেলের মাধ্যমে ব্যবহার করছি, আমি অনুমান করি যে অন্যান্য ক্ষেত্রেও একই প্রযোজ্য) সঠিক অপসারণ বাক্য গঠন, অর্থাৎ

db.test_users.remove({"_id": ObjectId("4d512b45cc9374271b02ec4f")})

... আপনি রেপ্লিকা সেটটির প্রাথমিক নোডের সাথে সংযুক্ত না হলে কাজ করে না ।


4

আমি নিজেই এটিতে ঝাঁপিয়ে পড়েছি এবং এই প্রকরণটি আমার পক্ষে কাজ করেছে:

db.foo.remove({**_id**: new ObjectId("4f872685a64eed5a980ca536")})

4

প্রথমে মোংডব অবজেক্টআইডি = আবশ্যক (মোংডব) থেকে অবজেক্টআইডি ফাংশনটি পান get অবজেক্টআইডি;

তারপরে আপনি মুছে ফাংশন সহ _id কল করতে পারেন

"_আইডি": অবজেক্টআইড ("4d5192665777000000005490")



1

মনে করুন আমাদের কাছে এই ডামি সংগ্রহ রয়েছে:

{ "_id" : ObjectId("5ea53fedaa79db20d4e14284"), "item" : "planner", "qty" : 75 }

সহজভাবে ব্যবহার করুন:

db.inventory.deleteOne({ _id: ObjectId("5ea53fedaa79db20d4e14284") })

প্রতিক্রিয়া হিসাবে এটি মুছে ফেলা হবে:

{ "acknowledged" : true, "deletedCount" : 1 }

এটাই.


0

সমাধান এবং উদাহরণ:

1- সি: \ মোংগোডিবি \ সার্ভার \ 3.2 \ বিন> মঙ্গো (এখনও কোনও আদেশ উপস্থাপন করবেন না কারণ আপনি এখনও কোনও ডাটাবেসের সাথে সংযুক্ত নন, আপনি কেবল ডাটাবেস সার্ভার মোংডব সাথে সংযুক্ত আছেন)।

2-

ডিবিএস অ্যানালিটিক্স_ড্যাটাবেসগুলি 0.000 জিবি স্থানীয় 0.000 গিগাবাইট টেস্ট_ড্যাটাবেস 0.000 জিবি প্রদর্শন করুন

3-

টেস্ট_ড্যাটাবেস ব্যবহার করে ডিবি টেস্ট_ড্যাটাসে স্যুইচ করা হয়

4-

ডিবি.ক্লেশন.রেমোভ ({"_ আইডি": অবজেক্টআইড ("5694a3590f6d451c1500002e")}, 1); লেখার ফলাফল ({"n সরানো": 1})

এখন আপনি দেখুন WritResult ({"n সরানো": 1}) 1 টি 0 নয়।

সম্পন্ন.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.