reactjs - 如何将数据附加到现有的 json
问题描述
我正在尝试检查具有输入用户 ID 的文档是否存在。如果确实如此,我只想将 ProjectName 附加到现有文档文件中,否则我想创建一个新文档。请帮助我将数据附加到现有文档中。先感谢您。
users.post('/createProject',function(Project, res, next){
var Details = {
User_Id:Project.body.userid,
Project_Name: Project.body.ProjectName
}
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("EMWorks");
dbo.collection("projects").findOne(Project.body.userid)
.then(user => {
if(!user) {
dbo.collection("projects").insertOne(Details, function(err, response) {
if (err) throw err;
console.log("*** DOCUMENTED INSERTED ***");
res.send('Project Created');
});
}else{
dbo.collection("projects").append(Details, function(err, response) {
if (err) throw err;
console.log("*** Data Appended ***");
res.send('Project Created');
});
}
})
.catch(err => {
res.send('error: ' + err)
})
});
})
解决方案
由于您没有返回文档,因此如果您想返回文档,则可以使用.updateOne()和else 使用.findOneAndUpdate(),请尝试以下代码:upsert
users.post('/createProject', function (Project, res, next) {
var Details = {
User_Id: Project.body.userid,
Project_Name: Project.body.ProjectName
}
MongoClient.connect(url, function (err, db) {
if (err) throw err;
var dbo = db.db("EMWorks");
dbo.collection("projects").updateOne(
{ User_Id: Project.body.userid },
{ $set: { Project_Name: Project.body.ProjectName } },
{ upsert: true }
/** If no document matches with 'User_Id: Project.body.userid' then as specified 'upsert: true' will create a new document with filter & update parts combined. */
).then(resp => {
if (resp.nupsertedId) {
console.log("*** DOCUMENT INSERTED ***");
res.send('Project Created');
} else {
console.log("*** Data Appended ***");
res.send('Project Created');
};
}).catch(err => {
res.send('error: ' + err)
})
});
})
推荐阅读
- javascript - 安装后我的 React Native 应用程序大小太大
- python - pygame.mixer.music 播放音频很好,但 pygame.mixer.Sound 给出错误“无法打开文件”
- asp.net-mvc - ASP。使用数据库中的资源数据进行网络核心本地化
- git - 如何让 git 忽略已删除但似乎可以看到的文件?
- python - 匹配不同数据帧的两个相同列中的值以获得另一列的对应值
- powershell - Hyper-V Powershell - 将冒号添加到 MAC 地址
- php - Laravel - 模型字段返回空值
- select - “选择 c”的含义。在 SQL 中
- laravel - Laravel lighthouse / graphQL - 在嵌套查询中调用时将模型列表限制为用户可以访问的模型
- c++ - std::chrono time_t 转换溢出?