2012-04-03 10 views
5

मैं, OID द्वारा डाटाबेस से दस्तावेजों पाने की जरूरत है की तरह में OID द्वारा दस्तावेज़ कैसे खोजें: यह करने के लिएmongoengine

Docs.objects(_id='4f4381f4e779897a2c000009') 

लेकिन कैसे, _ id ObjectId वस्तु की आवश्यकता है और मैं भी यह pymongo से ObjectId सेट करने का प्रयास करता है, तो काम नहीं करता

Docs.objects(_id=pymongo.objectid.ObjectId('4f4381f4e779897a2c000009')) 

वापसी खाली सूची

उत्तर

15

कैसे सिर्फ कच्चे स्ट्रिंग का उपयोग के बारे में:

Docs.objects.get(id='4f4381f4e779897a2c000009') 

शायद सबसे आसान तरीका है कि ... सही ?

+0

हालांकि प्राथमिक कुंजी के लिए काम नहीं करता है। या केवल मैं ही हूं? –

+0

http://docs.mongoengine.org/apireference.html#mongoengine.queryset.QuerySet.get – Wtower

20

यह काम करना चाहिए:

Docs.objects(pk='4f4381f4e779897a2c000009') 
+0

हाँ, यह सही है, thx। – Denis

+0

यह एक सूची देता है। एक वस्तु नहीं है। – Raptor

7

इस प्रश्न के लिए आया क्योंकि मुझे इस के साथ बहुत परेशानी थी। यह PyMongo changed this की तरह लगता है और ObjectId अब अंदर है pymongo और अब के बजाय है:

import bson 
Doc.objects.get(id=bson.objectid.ObjectId('4f4381f4e779897a2c000009')) 

इसके अलावा, Mongoengine ObjectID क्षेत्र के लिए नाम 'आईडी' का उपयोग करता है।

+1

साझा करने के लिए धन्यवाद, यह काम करता है। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^