scrapy存储到MongoDB 如果存在则忽略不存在就插入

scrapy存储到MongoDB 如果存在则忽略不存在就插入

Python
def process_item(self, item, spider): dict_item = dict(item) try: self.post.update({'a_source_url': dict_item['a_source_url']}, {"$setOnInsert": dict_item}, upsert=True) except: log.msg(dict_item,logging.ERROR) return item
1
2
3
4
5
6
7
8
9
     def process_item ( self , item , spider ) :
         dict_item = dict ( item )
         try :
             self . post . update ( { 'a_source_url' : dict_item [ 'a_source_url' ] } , { "$setOnInsert" : dict_item } , upsert = True )
         except :
             log . msg ( dict_item , logging . ERROR )
         return item
 
 

scrapy存储到MongoDB 如果存在则更新不存在就插入

Python
def process_item(self, item, spider): dict_item = dict(item) try: self.post.update({'a_source_url': dict_item['a_source_url']}, {"$set": dict_item}, upsert=True) except: log.msg(dict_item,logging.ERROR) return item
1
2
3
4
5
6
7
8
     def process_item ( self , item , spider ) :
         dict_item = dict ( item )
         try :
             self . post . update ( { 'a_source_url' : dict_item [ 'a_source_url' ] } , { "$set" : dict_item } , upsert = True )
         except :
             log . msg ( dict_item , logging . ERROR )
         return item
 

如果update的更新参数upsert:true,也就是如果要更新的文档不存在的话会插入一条新的记录,$setOnInsert操作符会将指定的值赋值给指定的字段,如果要更新的文档存在那么$setOnInsert操作符不做任何处理;




  • zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值