Col.delete_one(query) डेटाबेस में वांछित वस्तु को नहीं हटा रहा है।

मैंने छपाई की कोशिश की है। यह हटाने की कोशिश करता है, लेकिन इसे हटाया नहीं जाता है। मैंने कोशिश की है और सिवाय इसके कि यह परिणाम कहां प्रिंट करता है (यदि यह हटा दिया गया है या नहीं) और यह दिखा रहा है कि यह हटाया नहीं गया है। क्या मामला हो सकता है?

def del_query_one(col,q):
    try:
        col.delete_one(q)
        print("Deleted")
    except:
        print("Did not delete!")
def foo():
    query = col.find({<query condition>})
    mylist = list(query)
    if mylist:
        print("abc")
        del_query_one(col,query)
    if not mylist:
        print("xyz")
        # code for what should be done if an entry does not exist

यह देखते हुए कि एक प्रविष्टि मौजूद है, इसे abc प्रिंट करना होगा, "डिलीट" प्रिंट करना होगा, फिर दूसरे स्टेटमेंट पर जाएं और xyz प्रिंट करें। हालांकि, यह एबीसी प्रिंट करता है और प्रिंट करता है "हटाया नहीं गया"

0
Sourabh Yelluru 18 अप्रैल 2019, 20:33

1 उत्तर

सबसे बढ़िया उत्तर

आपको क्वेरी शर्तों को delete_one पर पास करना चाहिए, न कि आपके find क्वेरी परिणामों को। तो अपने del_query_one फ़ंक्शन को इस प्रकार कॉल करें:

del_query_one(col, <query condition>)
0
JohnnyHK 18 अप्रैल 2019, 18:49