首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nodejs和Springboot连接mongodb,但编辑其中一个导致文档重复

Nodejs和Springboot连接mongodb,但编辑其中一个导致文档重复
EN

Stack Overflow用户
提问于 2020-04-14 14:51:48
回答 1查看 18关注 0票数 0

我有一个NodeJS应用程序使用mongoose连接mongodb和Springboot应用程序(使用MongoRepository)来检索同一个mongodb中的数据,处理它并更新文档。

代码语言:javascript
复制
// Get Work
Work work = workRepository.findByJobNumAndFileRef(jobNum, fileRef);

// do processing
work.setUpdated_at(Calendar.getInstance().getTime());

// update
workRepository.save(work);

问题是,当Springboot更新文档时,它会创建另一个文档,而不是更新原始文档。

代码语言:javascript
复制
"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应用程序创建的相同文档。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-04-15 11:05:00

我可以通过从MongoRepository更改为MongoTemplate来解决我的问题

代码语言:javascript
复制
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);

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61202148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档