मैं पाइथन वेब एप्लिकेशन (पायमोंगो + बोतल) के लिए बैक-एंड डेटाबेस के रूप में मोंगोडीबी का उपयोग कर रहा हूं। उपयोगकर्ता अपलोड के दौरान फ़ाइलों को अपलोड कर सकते हैं और वैकल्पिक रूप से 'टैग' कर सकते हैं। टैग, दस्तावेज़ के भीतर एक सूची के रूप में जमा हो जाती नीचे प्रति:पुन: सम्मिलन के बिना प्योंमोन्गो में मोंगोडीबी दस्तावेज़ सरणी में आइटम संलग्न करें
{
"_id" : ObjectId("561c199e038e42b10956e3fc"),
"tags" : [ "tag1", "tag2", "tag3" ],
"ref" : "4780"
}
मैं उपयोगकर्ताओं को किसी भी दस्तावेज़ के लिए नए टैग संलग्न करने के लिए अनुमति देने के लिए कोशिश कर रहा हूँ। मैं कुछ इस तरह के साथ आया था: (।। FYI; ref
कुंजी हमेशा अद्वितीय है यह आसानी से _id
रूप में अच्छी तरह से हो सकता है)
def update_tags(ref, new_tag)
# fetch desired document by ref key as dict
document = dict(coll.find_one({'ref': ref}))
# append new tag
document['tags'].append(new_tag)
# re-insert the document back into mongo
coll.update(document)
ऐसा लगता है कि वहाँ सिर्फ 'टैग' मूल्य अपडेट करने का तरीका होना चाहिए सीधे पूरे दस्तावेज़ को वापस खींचकर और पुनः डालने के बिना। क्या मुझसे कोई चूक हो रही है?
किसी भी विचार बहुत सराहना कर रहे हैं :)
दोनों के बीच क्या अंतर है? बस वापसी मूल्य (दस्तावेज़ एक अद्यतनResult वस्तु बनाम)? आप एक या दूसरे का उपयोग कब करते हैं? – stackoverflowwww
क्या होता है यदि 'टैग' फ़ील्ड मौजूद नहीं है? –
यदि 'टैग' फ़ील्ड मौजूद नहीं है, तो यह बनाया गया है। @GauravOjha – styvane