0
我想用pymongo光標刪除集合中的文檔。但我有_id作爲嵌入式提交,我必須通過整個_id字段的刪除標準。通過傳遞嵌入文件來刪除文檔
{
"_id" : {
"Path" : 0,
"TriggerName" : "KM_Topzones_In App",
"userId" : NumberLong(3408661),
"Date" : "01/09/2017",
"OfferType" : "NOOFFER"
},
"OfferCount" : NumberLong(0),
"OfferName" : "NoOffer",
"desktopTop-normal" : NumberLong(1),
"mrcTop-normal" : NumberLong(1),
"appPostLoginOverlay-normal" : NumberLong(1)
}
刪除查詢:
>>> cursor=col.find()
>>> slice=cursor[0:5]
>>> for doc in slice:
... print doc['_id']
... result=col.delete_one({"_id": doc['_id']})
... result.deleted_count
...
{u'Date': u'01/09/2017', u'Path': 0, u'OfferType': u'NOOFFER', u'userId': 3408661L, u'TriggerName': u'KM_Topzones_In App'}
0
{u'Date': u'01/09/2017', u'Path': 0, u'OfferType': u'NOOFFER', u'userId': 1587308L, u'TriggerName': u'KM_Topzones_In App'}
0
{u'Date': u'01/09/2017', u'Path': 0, u'OfferType': u'NOOFFER', u'userId': 1049384L, u'TriggerName': u'KM_Topzones_In App'}
0
{u'Date': u'01/09/2017', u'Path': 0, u'OfferType': u'NOOFFER', u'userId': 3029181L, u'TriggerName': u'KM_Topzones_In App'}
0
{u'Date': u'01/09/2017', u'Path': 0, u'OfferType': u'NOOFFER', u'userId': 2884382L, u'TriggerName': u'KM_Topzones_In App'}
0
但不是刪除任何內容,有沒有辦法做到這一點?
請建議。
@ Styvan e非常感謝,但在我的情況下,我需要'查詢中的小改動。即查詢= {「_id。{key}」。format(key = key):鍵值的值,doc ['_ id']。items()}中的值' – lki
@@ Styvane,是否有可能在刪除,我希望它在到達_id.Date'字段的特定日期時停止。 – lki
您只能通過在查詢過濾器中使用_id.Date'字段來選擇要刪除的文檔。但是如果你有一個有效的Date對象,這將會很有用。 – styvane