欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python MongoDB 插入數(shù)據(jù)時(shí)已存在則不執(zhí)行,不存在則插入的解決方法

 更新時(shí)間:2019年09月24日 11:11:12   作者:九茶  
這篇文章主要介紹了Python MongoDB 插入數(shù)據(jù)時(shí)已存在則不執(zhí)行,不存在則插入的解決方法,結(jié)合實(shí)例形式分析了Python基于日志判斷數(shù)據(jù)是否已經(jīng)插入的相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python MongoDB 插入數(shù)據(jù)時(shí)已存在則不執(zhí)行,不存在則插入的解決方法。分享給大家供大家參考,具體如下:

前言:

想把QQ日志爬蟲(chóng)(Python)爬下來(lái)的日志保存到 MongoDB 里面。

但 insert 的時(shí)候報(bào)錯(cuò):

E11000 duplicate key error collection: QQ.Blog index: _id_ dup key: { : "965464518_1301232446" }

后來(lái)知道錯(cuò)誤的原因是:插入的數(shù)據(jù)和已有數(shù)據(jù)的 ID 重復(fù)了。

我想要的是:插入一篇日志,如果該日志(ID)已存在,則不執(zhí)行(也不更新);如果不存在則插入。

百度中大部分的答案都是用更新,但如果 ID 存在的話我是想直接不執(zhí)行的,沒(méi)有更新已有數(shù)據(jù)的必要。

解決方案:

update里有個(gè)參數(shù) ‘$setOnInsert' 可以實(shí)現(xiàn)”存在則不執(zhí)行”的功能,可見(jiàn) $setOnInsert 官方文檔

示例:

起始數(shù)據(jù):

> db.Blog.insert({"_id":"123456", "blog_cont":"abcdef", "title":"《My Test》"})
> db.Blog.find()
{ "_id" : "123456", "blog_cont" : "abcdef", "title" : "《My Test》" }

加入相同 ID 的日志:

> db.Blog.update({"_id":"123456"}, {$setOnInsert:{"blog_cont":"abc123", "other":"hello world!"}}, {upsert:true})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
>
> db.Blog.find()
{ "_id" : "123456", "blog_cont" : "abcdef", "title" : "《My Test》" }

加入不同 ID 的日志:

> db.Blog.update({"_id":"123"}, {$setOnInsert:{"blog_cont":"abc123", "other":"hello world!"}}, {upsert:true})
WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : "123" })
>
> db.Blog.find()
{ "_id" : "123456", "blog_cont" : "abcdef", "title" : "《My Test》"
{ "_id" : "123", "blog_cont" : "abc123", "other" : "hello world!" }

如果某些內(nèi)容想更新的話(例如更新 title )可以用 ‘$set':

> db.Blog.update({"_id":"123456"}, {$setOnInsert:{"blog_cont":"abc123", "other":"hello world!"}, $set:{"title":"《New Title》"}}, {upsert:true})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>
> db.Blog.find()
{ "_id" : "123456", "blog_cont" : "abcdef", "title" : "《New Title》
{ "_id" : "123", "blog_cont" : "abc123", "other" : "hello world!" }

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》、《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 如何利用python正確地為圖像添加高斯噪聲

    如何利用python正確地為圖像添加高斯噪聲

    這篇文章主要給大家介紹了關(guān)于如何利用python正確地為圖像添加高斯噪聲的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Python基于opencv的圖像壓縮算法實(shí)例分析

    Python基于opencv的圖像壓縮算法實(shí)例分析

    這篇文章主要介紹了Python基于opencv的圖像壓縮算法,結(jié)合實(shí)例形式分析了使用opencv進(jìn)行圖像壓縮的常用操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • python使用正則篩選信用卡

    python使用正則篩選信用卡

    這篇文章主要為大家詳細(xì)介紹了python使用正則篩選信用卡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • python 讀取excel文件生成sql文件實(shí)例詳解

    python 讀取excel文件生成sql文件實(shí)例詳解

    這篇文章主要介紹了python 讀取excel文件生成sql文件實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Python實(shí)現(xiàn)約瑟夫環(huán)問(wèn)題的方法

    Python實(shí)現(xiàn)約瑟夫環(huán)問(wèn)題的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)約瑟夫環(huán)問(wèn)題的方法,詳細(xì)分析了約瑟夫環(huán)問(wèn)題的描述、原理與解決方法,需要的朋友可以參考下
    2016-05-05
  • Python如何根據(jù)字幕文件自動(dòng)給視頻添加字幕效果

    Python如何根據(jù)字幕文件自動(dòng)給視頻添加字幕效果

    視頻中字幕的重要性不用多說(shuō)了,下面這篇文章主要給大家介紹了關(guān)于Python如何根據(jù)字幕文件自動(dòng)給視頻添加字幕效果的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • Python導(dǎo)出DBF文件到Excel的方法

    Python導(dǎo)出DBF文件到Excel的方法

    這篇文章主要介紹了Python導(dǎo)出DBF文件到Excel的方法,實(shí)例分析了Python基于win32com模塊實(shí)現(xiàn)文件導(dǎo)出與轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • 帶你精通Python正則表達(dá)式

    帶你精通Python正則表達(dá)式

    本文將給大家分享一份關(guān)于比較詳細(xì)的Python正則表達(dá)式寶典,學(xué)會(huì)之后你將對(duì)正則表達(dá)式達(dá)到精通的狀態(tài),一起來(lái)學(xué)習(xí)下面內(nèi)容吧
    2021-08-08
  • python如何與前端交互舉例詳解

    python如何與前端交互舉例詳解

    在Web開(kāi)發(fā)中前端與后端之間的數(shù)據(jù)交互,下面這篇文章主要給大家介紹了關(guān)于python如何與前端交互的相關(guān)資料,文章通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • Django models.py應(yīng)用實(shí)現(xiàn)過(guò)程詳解

    Django models.py應(yīng)用實(shí)現(xiàn)過(guò)程詳解

    這篇文章主要介紹了Django models.py應(yīng)用實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評(píng)論