2017-02-07 53 views
1

我是python編程的新手,我在插入文檔時犯了一個錯誤,其中一些字段像日期不是iso日期格式,我插入了它,並且再次更改日期格式並插入到MongoDB的,但也有相同的日期費爾德一個是像ISO,另一種是字符串日期格式我想刪除總的格式字符串對象我所做的多個記錄的是:mongo db刪除字符串日期刪除操作

db.attendance.deletemany({date:{$lte:new Date(2016, 12, 22)}})

我有像date:ISODate("2016-12-22T00:00:00.000+0000"), 記錄我需要刪除只有字符串日期任何人請幫助我

+0

什麼是問題?只需刪除特定日期的記錄? – Dmitry

回答

0

你可以做最簡單的事情是遍歷所有的值,並刪除它是否符合您的標準

from pymongo import MongoClient 
client = MongoClient() 
db = client.<your_db_name> 
for document in db.attendance.find(): 
    if type(document['date']) == str: 
     db.attendance.delete_one(document) 
+0

它很好,你能告訴我查詢我想要在mongochef上執行這個操作嗎 – venkatesh

+0

我還沒有和mongoshef一起工作,但是,你可以使用@oblivion的方式在一個語句中執行此操作。 –

0

您可以使用$type如下:

db.attendance.remove("date":{$type:"string"}) 

這將刪除所有的文檔有date存儲爲string。這裏string是mongo中String data type的別名。如果需要對其他數據類型進行操作,可以看到BSON types