美文网首页
mongoDB 的 $set、$setOnInsert 区别

mongoDB 的 $set、$setOnInsert 区别

作者: 程序里的小仙女 | 来源:发表于2020-12-07 09:03 被阅读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为插入操作

相关文章

网友评论

      本文标题:mongoDB 的 $set、$setOnInsert 区别

      本文链接:https://www.haomeiwen.com/subject/wvtziktx.html