2012-08-29 7 views
15

का उपयोग करके _o द्वारा MongoDB में खोज दस्तावेज़ निम्न समस्या से परेशान है।फ्लास्क-पिमोंगो एक्सटेंशन

मैं बोतल, कुप्पी के pymongo विस्तार, MongoDB संस्करण v2.2.0-RC0, उपयोग कर रहा हूँ संस्करण 4.5

pdfile यह मेरा मार्ग है:

@app.route("/check/<id>") 
def check(id): 
    doc=conn.db.msg.find_one({'_id':id}) 
    return render_template('base.html',name=doc) 

आईडी एक दस्तावेज से एक वैध _ id है संदेश संग्रह में, लेकिन हमेशा कोई नहीं लौटाता है।

मैं कोशिश की है:

  • ObjectId (आईडी) Pasing लेकिन ERRORTYPE रिटर्न: नहीं objectId प्रतिदेय
  • आईडी Pasing str (आईडी) के रूप में वापस नहीं

किसी भी विचार?

अद्यतन: यह कैसे पूर्ण यूआरएल की तरह दिखता है:

http://127.0.0.1:8000/check/5030b628895b800de1a9a792 

UPDATE2:

मैं एक ऐसी ही माणिक के लिए साथ (उत्तर) प्रश्न नहीं मिला। सुनिश्चित नहीं है कि मैं इसे पायथन में कैसे अनुवाद कर सकता हूं, मुझे किस प्रकार के आयात/मॉड्यूल की आवश्यकता है?

How can I retrieve a document by _id?

Update3: मैंने कोशिश की:

import bson 
@app.route("/check/<id>") 
def check(id): 
id2="'"+id+"'" 
doc=conn.db.msg.find_one({'_id':bson.objectid(id2) }) 
return render_template('base.html',name=doc) 

लेकिन मैं लेखन त्रुटि मिलती है: 'मॉड्यूल' ऑब्जेक्ट (यह आईडी के साथ या तो काम does not)

जब मैं प्रतिदेय नहीं है 1500 तक पहुंचे मैं एक निराशा का सुझाव दूंगा टैग: -एस

अद्यतन 4:

अंत में मुझे यह & चल रहा है!

यहाँ

यह मेरे समाधान है:

from bson.objectid import ObjectId 

उस मामले में, आप की जरूरत नहीं होगी:

import bson 
@app.route("/check/<id>") 
def check(id): 
doc=conn.db.msg.find_one({'_id':bson.ObjectId(oid=str(id))}) 
return render_template('base.html',name=doc) 

उत्तर

29

तुम भी, bson.objectid मॉड्यूल से ObjectId उपयोग करने का प्रयास करने के लिए तो जैसे चाहते हो सकता है oid kwarg प्रदान करें। तुम बस कुछ इस तरह करेंगे:

db_conn.msg.find_one({'_id': ObjectId(my_oid)}) 
+0

मैं pymongo.objectid (आईडी) की कोशिश की और काम नहीं किया ... अब मुझे पता है क्यों .... धन्यवाद – Altons

+0

आप यह काम कर रहा गया खुशी! – aezell

+0

वैसे, हम इस चूक के बारे में लोगों को सचेत करने के अगली फिल्म के लिए PyMongo डॉक्स को अपडेट कर रहे: https://github.com/mongodb/mongo-python-driver/commit/dcf546f0b08e59d0d2c4f09a08fd9fe07017256a आशा है कि मदद करता है। –

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