gpt4 book ai didi

node.js - Nodejs中的Mongodb upsert命令

转载 作者:太空宇宙 更新时间:2023-11-03 23:02:25 26 4
gpt4 key购买 nike

我创建了一个名为 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 条记录时,我想检查即将到来的记录的 Id 字段是否已经存在于我的 MongoDB 中(如果是,则进行更新,否则插入)。

不要对来自外部系统的 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]);
}
})

最佳答案

使用updateOne方法:

db.collection.updateOne(
{ _id: id },
{ $set: { name: 'name' } },
{ upsert: true }
);

如果找到具有匹配 id 的记录,则将更新 name 字段,否则将创建一条新记录。

关于node.js - Nodejs中的Mongodb upsert命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44321183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com