كيف أحصل على معرف كائن بعد استمراره في بيموونغو؟
سؤال
لدي سؤال مبتدئ في Pymongo: إذا collection
هو pymongo مجموعة وأنا أستخدمه لحفظ كائن
obj = {'foo': 'bar'}
collection.insert(obj)
ثم يقوم MongoDB تلقائيًا بإنشاء _id
حقل ل obj
; ؛ مرة واحدة يمكن أن تؤكد هذا مع
print obj
الذي يعطي شيئًا مثل
{'foo': 'bar', '_id': ObjectId('4c2fea1d289c7d837e000000')}
سؤالي هو: كيف يمكنني الحصول على ذلك _id
ارجع بطريقة يمكنني استخدامها؟
على سبيل المثال ، إذا أردت حذف obj
من قاعدة البيانات ، أعتقد أنني أريد أن أفعل شيئًا مثل
collection.remove(obj['_id'])
لكن عندما أحاول ذلك ، أحصل على الرسالة
TypeError: 'ObjectId' object is unsubscriptable.
ماذا يحدث هنا؟
المحلول
إدراج إرجاع _ID من المستند المدرج.
وسيتم إزالة الإزالة بناءً على _id ، لذا جرب شيئًا مثل:
doc_id = db.test.insert({"foo": 1})
db.test.remove(doc_id)
نصائح أخرى
تحتاج فقط لتمرير remove
قولون ، تماما كما فعلت insert
. لذلك ، لإزالة وثيقة بناء على _id
القيمة ، افعل شيئًا مثل:
collection.remove({'_id': ObjectId('4c2fea1d289c7d837e000000')})
يمكنك فقط المرور obj
.
لإزالة كائن من المستند ، يجب أن تذكر الشرط حيث يمكنك تحديد "_id" لمستند ........
_id = db.test.insert({"foo": "test"})
db.test.remove({"_id":_id})
لا تنتمي إلى StackOverflow