我创建了一个名为Account的集合。
第一次拍摄时,我正在插入约5条记录。
{"Id":"0012800000C6Q19AAF","Name":"Aditya Kumar"}
{"Id":"0012800000C6MldAAF","Name":"GenePoint"}
{"Id":"0012800000C6MlbAAF","Name":"United Oil & Gas, UK"}
{"Id":"0012800000C6MlcAAF","Name":"United Oil & Gas, Singapore"}
{"Id":"0012800000C6MlTAAV","Name":"Edge Communications"}
{"Id":"0012800000C6MlUAAV","Name":"Burlington Textiles Corp of America"}
我从外部系统提取数据,该数据已经与ID相关联。
下次再次请求插入额外的5条记录时,我想检查我的MongoDB中是否已存在即将发生的记录的Id字段(如果是,则执行更新其他插入)。
不要对来自外部系统的Id字段感到困惑,并为每个MongoDB文档创建_Id字段。
以下是我的尝试:
var x= fields["data"]; obj='Account';
db.createCollection(obj);
db.collection(obj).insert(fields, function(err, doc) {
if (err) {
handleError(res, err.message, "Failed to create new contact.");
} else {
res.status(201).json(doc.ops[0]);
}
})
答案 0 :(得分:2)
使用updateOne方法:
db.collection.updateOne(
{ _id: id },
{ $set: { name: 'name' } },
{ upsert: true }
);
如果找到匹配id
的记录,则会更新name
字段,否则将创建新记录。