例如,如果我有一个只设置了更新字段的Java对象(假设有一个未设置的第三个字段C
):
obj.setA(1);
obj.setB(2);
是否可以执行只更新Update
和A
的{{1}}操作?看来我对Spring Data的唯一选择是使用B
(这会将数据库中save()
的值覆盖到C
),或使用null
,这需要我为对象中的每个字段构造一个update()
对象,其中包含Update
语句,以及硬编码Mongo字段名称。基本上我正在寻找的东西可以做这个更新操作:
set()
我正在用反思搞砸一下试图这样做(看看提供的解决方案here),这可能有用,但看起来有点hacky。如果Spring Data以某种方式支持这一点,我宁愿这样做。
答案 0 :(得分:0)
正是出于o.s.d.m.core.query.Update
的目的
来自reference documentation:
// query: { "name" : "Joe" }
// update: { "$set" : { "age" : 35} }
mongoOps.updateFirst(query(where("name").is("Joe")), update("age", 35), Person.class);