如题,我现在实现的方法是用语句来查询:
result = db.collection.find_one(xxxx) if result: 更新数据 else: 插入数据
但是,这种方法效率太低了,不知道有没有更好的方法?
欢迎选择我的课程,让我们一起见证您的进步~~
MongoDB中引入了一种叫做upsert的特殊更新,如果没有文档符合更新条件,就会以这个条件和更新文档为基础创建一个新的文档;如果找到了匹配文档,则正常更新。
upsert
详见MongoDB的文档。
upsert: db.collection.update(xx, xx,true) 第三个参数设为true即可
不知道有没有对mongodb的find_one测试过, 在亿级(已测试)数据查询时没问题.
MongoDB中引入了一种叫做
upsert
的特殊更新,如果没有文档符合更新条件,就会以这个条件和更新文档为基础创建一个新的文档;如果找到了匹配文档,则正常更新。详见MongoDB的文档。
upsert:
db.collection.update(xx, xx,true)
第三个参数设为true即可
不知道有没有对mongodb的find_one测试过, 在亿级(已测试)数据查询时没问题.