如下摘自pymongo文檔:html
update_one
(filter, update, upsert=False)python
update_many
(filter, update, upsert=False)mongodb
True
, perform an insert if no documents match the filter.
這兩個是pymongo庫的數據更新函數,其中upsert默認爲False。若是咱們想要把數據加入數據庫,同時想要避免插入重複的數據,那麼只要把upsert改成True便可,此時表示若是沒有找到匹配的文件,那麼執行插入操做。數據庫
例如,我想把下面這條數據保存至數據庫,可是若是這條數據已經在數據庫存在了,那麼不進行任何操做。api
{'index': '1', 'movie_name': '霸王別姬', 'pic': 'https://p1.meituan.net/movie/20803f59291c47e1e116c11963ce019e68711.jpg@160w_220h_1e_1c', 'release': '上映時間:1993-01-01', 'score': '9.5'}
那麼應該把這條數據做爲查詢語句,而後執行collection.update_one(query,{'$set':query},upsert=True)。app
query={'_id': ObjectId('5d23fc92c2a80d7e578a2ae2'), 'index': '1', 'movie_name': '霸王別姬', 'pic': 'https://p1.meituan.net/movie/20803f59291c47e1e116c11963ce019e68711.jpg@160w_220h_1e_1c', 'release': '上映時間:1993-01-01', 'score': '9.5'} collection.update_one(query,{'$set':query},upsert=True)
參考:http://api.mongodb.com/python/current/api/pymongo/collection.html函數