首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用新记录更新原始记录,如果新记录违反了morphia中的唯一键约束?

用新记录更新原始记录,如果新记录违反了morphia中的唯一键约束?
EN

Stack Overflow用户
提问于 2012-12-25 21:54:07
回答 1查看 327关注 0票数 1

如果新记录违反了mongodb中使用morphia的唯一键约束,有没有办法用新记录替换原始记录?

Upsert对我不起作用,因为在morphia中,object_id是空的,直到它被保存到数据库中,如果唯一键约束是由于另一个字段而生成的,它就不能执行upsert,因为新记录将具有与原始记录不同的object_id。

我不想从db中查找原始记录,但如果新记录创建了唯一键约束,就覆盖它,有什么方法可以做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-26 05:40:21

我认为有3种可能的方法:

  1. 获取唯一元素的ObjectId,将其添加到新文档中并保存。由于您重用了ObjectId,因此旧元素将被覆盖。这需要两个查询,而不是一个。
  2. 创建一个update查询,查询部分检查唯一属性并显式设置您想要更改的所有属性。它的工作原理如下:

datastore.createUpdateOperations(User.class).set("firstName",updateQuery = datastore.createQuery(User.class) .field("userId").equal("foo");ops = Query“updateQuery”);datastore.update(updateQuery,ops);

我会选择第二个选项。

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

https://stackoverflow.com/questions/14031249

复制
相关文章

相似问题

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