使用行的自定义字段将记录插入 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/