deleteone () не работает, хотя все условия кажутся выполненными - PullRequest
0 голосов
/ 18 апреля 2019

col.delete_one (запрос) не удаляет нужный объект в базе данных.

Я пробовал печатать.Он пытается удалить, но не удаляется.Я использовал try и за исключением случаев, когда он печатает результат (если он был удален или нет), и он показывает, что он не был удален.В чем может быть дело?

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, напечатать «удалено», затем перейти ко второму оператору if и напечатать xyz.Тем не менее, он печатает ABC и печатает "не удалил"

1 Ответ

0 голосов
/ 18 апреля 2019

Вы должны передавать условия запроса на delete_one, а не на find результаты запроса.Так что назовите вашу del_query_one функцию как:

del_query_one(col, <query condition>)
...