:csv_files
のcsv文字列を格納するための配列フィールドを含むマングースモデルがあります。別のウェブアプリケーションからfetch
APIリクエストを送信して、特定のPost
のcsv文字列をPOSTします。マングース - バージョンエラー:一致するドキュメントが見つかりません
以下のコードはエラーに
UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): VersionError: No matching document found for id "5966932399e969ad8013bedf"
router.js
router.post('/posts/:url/upload-csv/:csv_name', (req, res) => {
let csv_name = req.params.csv_name;
let csv_string = csv_name+req.body.csv_string;
Post.findOne({url: req.params.url})
.then((post) => {
if (post.csv_files.length === 0) {
post.csv_files.push(csv_string);
} else {
let foundExistingCSV = false;
for (var i = 0; i < post.csv_files.length; i++) {
if (post.csv_files[i].includes(csv_name)) {
foundExistingCSV = true;
post.csv_files[i] = csv_string;
break;
}
}
if (!foundExistingCSV) post.csv_files.push(csv_string);
}
post.markModified('csv_files');
post.save();
return res.status(200);
})
.catch((err) => {
console.log(err);
return res.status(400);
});
});
モデル/ post.js
const mongoose = require('mongoose');
var stringPreset = {
type: String,
uppercase: true
}
var Post = mongoose.model('Post', {
name : stringPreset,
url : String,
password : String,
csv_files : { type : Array , "default" : [] },
updatedAt : { type: Date, default: Date.now }
});
module.exports = { Post };
を生成し、私はこの問題を解決するにはどうすればよいように文書はtに保存されます彼csv_files
アレイエラーはありませんか?
複数のリクエストによって同じドキュメントが(ほぼ)同時に処理される可能性はありますか? – robertklep