使用行的自定义字段将记录插入 Mongodb 时避免重复
Avoid duplicates in inserting records to Pymongodb using custom field of the row
根据作为每行的强制键添加的自定义键 (employeeid) 添加记录到 mongodb 时如何避免重复?如果员工 ID 存在,那么我不应该 insert/add pymongodb 中的任何新记录。
def add_employee():
star = mongo.db.employees
_json = request.json
_employeeid = _json['employeeid']
_param2 = _json['Param2']
_param3 = _json.get('Param3')
if _employeeid and _param2 and _param3 request.method == 'POST':
record_id = star.insert({'_employeeid': _param1, 'Param2': _param2})
return resp
解决方案 1:
下面的一个没有用,给我一个错误,说明 upsert is not defined。
'''python
db.companies.updateOne(
{"company": "test"},
{ $setOnInsert: { "name": "nameVal2", ... } },
{ upsert: true }
)
'''
任何帮助都将不胜感激?
您可以通过为集合创建唯一索引来避免重复记录。在您的情况下,您应该执行此代码 db.employees.createIndex( { employeeid: 1 }, { unique: true } )
有关创建唯一索引的详细信息。请参考这个link:https://docs.mongodb.com/manual/core/index-unique/
根据作为每行的强制键添加的自定义键 (employeeid) 添加记录到 mongodb 时如何避免重复?如果员工 ID 存在,那么我不应该 insert/add pymongodb 中的任何新记录。
def add_employee():
star = mongo.db.employees
_json = request.json
_employeeid = _json['employeeid']
_param2 = _json['Param2']
_param3 = _json.get('Param3')
if _employeeid and _param2 and _param3 request.method == 'POST':
record_id = star.insert({'_employeeid': _param1, 'Param2': _param2})
return resp
解决方案 1:
下面的一个没有用,给我一个错误,说明 upsert is not defined。
'''python
db.companies.updateOne(
{"company": "test"},
{ $setOnInsert: { "name": "nameVal2", ... } },
{ upsert: true }
)
'''
任何帮助都将不胜感激?
您可以通过为集合创建唯一索引来避免重复记录。在您的情况下,您应该执行此代码 db.employees.createIndex( { employeeid: 1 }, { unique: true } )
有关创建唯一索引的详细信息。请参考这个link:https://docs.mongodb.com/manual/core/index-unique/