我有一个NodeJS应用程序使用mongoose连接mongodb和Springboot应用程序(使用MongoRepository)来检索同一个mongodb中的数据,处理它并更新文档。
// Get Work
Work work = workRepository.findByJobNumAndFileRef(jobNum, fileRef);
// do processing
work.setUpdated_at(Calendar.getInstance().getTime());
// update
workRepository.save(work);问题是,当Springboot更新文档时,它会创建另一个文档,而不是更新原始文档。
"data": [
{
"_id": "5e9489ea2ea7c9fb5a6b7be6",
"num": 1,
"jobNum": "TG123",
"description": "Good tesst",
"started_at": "2020-04-04T17:00:00.000Z",
"ended_at": "2020-04-05T17:00:00.000Z",
"fileName": "File_Upload",
"status": "1",
"fileRef": "ea7lsx1dnek8ynjnom",
"fileLocation": "../ea7lsx1dnek8ynjnom_File_Upload_1586792938917",
"created_at": "2020-04-13T15:48:58.962Z",
"updated_at": "2020-04-13T15:48:58.962Z",
"__v": 0
},
{
"_id": "5e948a0c590d1d5458051548",
"jobNum": "TG123",
"num": 1,
"fileRef": "ea7lsx1dnek8ynjnom",
"description": "Good tesst",
"started_at": "2020-04-04T17:00:00.000Z",
"ended_at": "2020-04-05T17:00:00.000Z",
"created_at": "2020-04-13T15:48:58.962Z",
"updated_at": "2020-04-13T15:49:32.217Z",
"_class": "io.github.mongo.model.Work"
}
]我的问题是如何强制Springboot更新Nodejs应用程序创建的相同文档。
谢谢
发布于 2020-04-15 11:05:00
我可以通过从MongoRepository更改为MongoTemplate来解决我的问题
Criteria criteria = Criteria.where("jobNum").is(jobNum).and("fileRef").is(fileRef);
Update update = new Update();
update.addToSet("work", workData);
update.set("status", "2");
update.set("updated_at", Calendar.getInstance().getTime());
Query query = new Query();
query.addCriteria(criteria);
mongoTemplate.findAndModify(query, update, Work.class);谢谢
https://stackoverflow.com/questions/61202148
复制相似问题