का उपयोग करके _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)
मैं pymongo.objectid (आईडी) की कोशिश की और काम नहीं किया ... अब मुझे पता है क्यों .... धन्यवाद – Altons
आप यह काम कर रहा गया खुशी! – aezell
वैसे, हम इस चूक के बारे में लोगों को सचेत करने के अगली फिल्म के लिए PyMongo डॉक्स को अपडेट कर रहे: https://github.com/mongodb/mongo-python-driver/commit/dcf546f0b08e59d0d2c4f09a08fd9fe07017256a आशा है कि मदद करता है। –