如果新记录违反了mongodb中使用morphia的唯一键约束,有没有办法用新记录替换原始记录?
Upsert对我不起作用,因为在morphia中,object_id是空的,直到它被保存到数据库中,如果唯一键约束是由于另一个字段而生成的,它就不能执行upsert,因为新记录将具有与原始记录不同的object_id。
我不想从db中查找原始记录,但如果新记录创建了唯一键约束,就覆盖它,有什么方法可以做到这一点吗?
发布于 2012-12-26 05:40:21
我认为有3种可能的方法:
datastore.createUpdateOperations(User.class).set("firstName",updateQuery = datastore.createQuery(User.class) .field("userId").equal("foo");ops = Query“updateQuery”);datastore.update(updateQuery,ops);
@Id注释使用您的唯一属性作为您的ID。然而,有一些(小)缺点:https://groups.google.com/forum/#!msg/morphia/GQLJywseiCM/6DVkYX17P68J我会选择第二个选项。
https://stackoverflow.com/questions/14031249
复制相似问题