mongodb - 如何在mongodb中存储下载的文件本地url
问题描述
我想将下载文件的 url 路径存储在 mongodb 中,以便以后可以使用该路径在我的应用程序中打开文件。
我试图存储,但问题是每当我下载新文件时,它都会与前一个文件更新。
这是后端代码
router.post('/download',function (req, res) {
console.log(req.body)
User.updateOne({_id:req.body.userid},{$set:{downloadurl:req.body.downloadurl
}}).then((user)=>{
console.log(user);
res.status(200).send({
data:user,
message:'success'
})
}).catch((err)=>{
console.log(err)
res.status(500).send({
data:err,
message:'not success'
})
})
});
这是ui的后端
export async function DownloadUrl(data) {
let result = await fetch(url + 'user/download', {
method: 'POST',
body: JSON.stringify(data),
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
}
}).then(response => response.json());
console.log(result);
return result;
}
解决方案
这里的问题是您的网址被存储在纯文本字段中。您需要将它们存储在一个数组中,而不是使用$set,这将覆盖以前的数据,开始使用$push,它将数据附加到您的 url 数组:
router.post('/download',function (req, res) {
console.log(req.body)
User.updateOne(
{_id:req.body.userid},
{$push:{download_urls:req.body.downloadurl}}
).then((user)=>{
console.log(user);
res.status(200).send({
data:user,
message:'success'
})
}).catch((err)=>{
console.log(err)
res.status(500).send({
data:err,
message:'not success'
})
})
});
这样,您最终将得到User
如下文件:
{
"_id": "some_id_value",
// [...]
"dowload_urls": [
"someurl1",
"someurl2",
"someurl3"
]
}
推荐阅读
- sql - 如何使用 count(*) group by 的结果选择值?
- javascript - TypeError:解构对象后“x”是(不是)“y”
- php - Php mailer 给我一个成功的消息,但没有传递消息
- azure - 如何将网关子网添加到包含 Azure 上的 VM 的 Vnet
- sql - compare rows between two ids with in the same table and insert the missing row for that id
- regex - Rewrite except loading JS files
- node.js - error while installing "npm install -g ionic cordova"
- vb.net - Fetching machine details remotely from large group of computers
- java - Smali - how to to edit the url on click in this code
- node.js - NCD -nodejs certified developer