Python操作mongoDB时insert和update的用法

使用python操作mongodb时我们使用的是pymongo库,此处使用的pymongo版本为 3.10.1
所以我们先来看一下pymongo官方文档中的说明,大家一定要学会去看官方文档,官方文档都是最全最新的说明;
官方文档中插入API有如下两个:

insert_one(document, bypass_document_validation=False, session=None)
参数说明:
document: 要插入的文档
bypass_document_validation: (可选) 若为True, allows the write to opt-out of document level validation. 默认为False;注意:bypass_document_validation 需要服务器版本 >= 3.2;备注: 这个参数我还没用到过,具体怎么用不懂,用到了再来更新

insert_many(documents, ordered=True, bypass_document_validation=False, session=None)
参数说明:
document: 要插入的文档
ordered: (可选参数),如果设置为True, 那么将按照提供的文档顺序插入,如果出错,则后面带出入的操作都会被终止;如果设置为False,文档插入顺序随机的,也有可能是并行的,并且所有的文档都会被执行一次插入。默认为True

更新的API:

update_one(filter, update, upsert=False, bypass_document_validation=False, collation=None, array_filters=None, session=None)
update_many(filter, update, upsert=False, array_filters=None, bypass_document_validation=False, collation=None, session=None)
主要了解三个参数,也是我用到了的三个参数:
filter:查询条件,符合条件的会执行update
update: 需要做的更新操作
upsert: 可选参数, 如果设置为True,filter条件为查询到文档时,执行插入操作;

请查看如下示例:

db = MongoConfig()
table = db['inventory2']
dic = {
    "_id" : 7.0,
    "item" : "ABC",
    "price" : 180,
    "sizes" : [ 
        "S", 
        "M", 
        "XL"
    ]
}
result = table.update_one({'_id':7.0}, {'$set': dic}, upsert=True)
print(result.matched_count, result.modified_count)

data = table.find()
for da in list(data):
    print(da)

你可能感兴趣的:(Python操作mongoDB时insert和update的用法)