mongoDB 的 $set、$setOnInsert 区别

2020-12-07  本文已影响0人  程序里的小仙女

注意:
setOnInsert和set中的属性记录不能相同

mongo更新语句使用setOnInsert、upsert和set、upsert的区别

对于查询到的记录。
使用set、upsert 存在则更新,不存在则新增 使用setOnInsert、upsert存在则不操作,不存在则新增

# !/bin/env python
# encoding:utf-8
import os
from pymongo import MongoClient
# 连接数据库
conn=MongoClient('127.0.0.1', 27017)
# conn = pymongo.Connection('115.28.55.217', 27017)
db=conn.haha

# db.users.remove()
# Insert & Save
# db.users.insert({'name': 'user1', 'age': 16, 'index': 1})
# db.users.insert({'name': 'user2', 'age': 17, 'index': 2})
db.users.insert({'_id': 1, 'age': 18, 'index': 3})

json={
    'age': 555555,
    'index': 33335,
    "name":"linxiao"
}
id=1
db.users.update({'_id': id}, {'$set': json, '$setOnInsert':{'_id': id}}, upsert=True)
# 查看插入状态
status = db.command('getlasterror')['updatedExisting']
print(status)  # true为更新操作,false为插入操作
上一篇 下一篇

猜你喜欢

热点阅读