即使似乎满足所有条件,deleteone()也不起作用

时间:2019-04-18 17:33:58

标签: mongodb pymongo

col.delete_one(query)没有删除数据库中所需的对象。

我尝试打印。它尝试删除,但不会被删除。我用过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,打印“ deleted”,然后转到第二个if语句并打印xyz。但是,它会打印abc并显示“未删除”

1 个答案:

答案 0 :(得分:0)

您应该将查询条件传递给delete_one,而不是find查询结果。因此,将您的del_query_one函数称为:

del_query_one(col, <query condition>)