我正在使用Morphia。
我的文档是POJO:
Hotel{
@Id
private long hotelID;
private String anotherField1;
private String anotherField2;
private String anotherField3
}
在MongoDB 中插入酒店的正确方法是什么?但仅当它是新的hotelID
我了解Morphia(https://github.com/mongodb/morphia/wiki/Updating)中带有“update
”参数的createIfMissing
方法。但是我的操作不是更新,而是简单的保存(是/否取决于数据库中POJO的存在)。
对于最佳方式的任何建议表示赞赏。
答案 0 :(得分:2)
您所描述的是save操作:
datastore.save(NEWOBJECT);
如果存在具有相同_id
的文档,则将替换整个文档。否则,将创建一个新文档。
使用createIfMissing
选项也可以实现同样的效果,基本上是upsert操作(如果存在则更新文档文档,否则创建它)。
两个命令之间的区别在于,如果文档已存在,save
将替换整个文档,而upsert
将仅更新指定的部分。对于您的用例,save
方法可能是更好的匹配。
答案 1 :(得分:1)
如果不存在具有指定ID的实体,则将createIfMissing
设置为true将执行插入。如果它确实存在,它将更新现有实体。