我想将下载文件的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;
}
答案 0 :(得分:0)
这里的问题是您的网址存储在纯文本字段中。您需要将它们存储在一个数组中,而不是使用$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"
]
}