pymongo remove之safe(如何检查删除是否成功)
# 删除一个条件不成立的查询,返回结果{u'err': None, u'n': 0L, u'ok': 1.0},其中dict中‘n’key值为0,通过'n'可以知道remove是否删除成功
In [25]: dt.remove({'pet':'dog','nickname':'user000'},safe=True)
Out[25]: {u'err': None, u'n': 0L, u'ok': 1.0}
In [26]: for i in dt.find():print i
....:
{u'pet': u'duck', u'_id': ObjectId('4c689f4e07fe861017000001'), u'nickname': u'user001', u'ukey': 287436516703862790L}
{u'pet': u'chicken', u'_id': ObjectId('4c689f4e07fe861017000002'), u'nickname': u'user002', u'ukey': 287436516704124935L}
{u'pet': u'cat', u'_id': ObjectId('4c689f4e07fe861017000003'), u'nickname': u'user003', u'ukey': 287436516704387080L}
{u'pet': u'cow', u'_id': ObjectId('4c689f4e07fe861017000004'), u'nickname': u'user004', u'ukey': 287436516704387081L}
{u'pet': u'snake', u'_id': ObjectId('4c689f4e07fe861017000005'), u'nickname': u'user005', u'ukey': 287436516743184394L}
# 删除一个条件成立的查询,返回结果{u'err': None, u'n':1L, u'ok': 1.0},其中dict中‘n’key值为1
In [28]: res = dt.remove({'pet':'duck','nickname':'user001'},safe=True)
In [29]: res
Out[29]: {u'err': None, u'n': 1L, u'ok': 1.0}
如果不指定safe的值,默认safe=False,不返回错误及异常;如果指定safe=True,则可以看到它返回一个这样的dict = {u'err': None, u'n': 1L, u'ok': 1.0}