最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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日志爬蟲(Python)爬下來的日志保存到 MongoDB 里面。

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

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

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

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

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

解決方案:

update里有個(gè)參數(shù) ‘$setOnInsert' 可以實(shí)現(xiàn)”存在則不執(zhí)行”的功能,可見 $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)容感興趣的讀者可查看本站專題:《Python常見數(shù)據(jù)庫(kù)操作技巧匯總》、《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

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

相關(guān)文章

最新評(píng)論

灵川县| 鸡泽县| 铜川市| 廊坊市| 界首市| 白朗县| 塘沽区| 宜春市| 都安| 平江县| 巫山县| 禹州市| 道孚县| 成都市| 沿河| 杭锦后旗| 禹州市| 襄城县| 常熟市| 葫芦岛市| 巍山| 奎屯市| 辉县市| 墨江| 长沙市| 齐齐哈尔市| 建德市| 永宁县| 闽清县| 抚宁县| 德江县| 明星| 建宁县| 宕昌县| 珠海市| 明星| 平阳县| 临清市| 隆昌县| 合肥市| 保靖县|