我在 MongoDB 集合中有这样的文档:
{
id : ...
listA:[{
id: ...,
thing:...,
listB:[{...},{...}]
},...
]
}
(顶层ID是正常的自动生成的MongoDB ID。子文档对象的另一个ID是我单独生成并推入列表的伪ID)
问题:我想(1)添加listB
和(2)改变thing
该对象可能非常庞大,并且可能有多个线程在该对象上运行,因此我想避免出现findOne
, update, thensave
类型的场景。
我想在 Spring Data 中以与我推动类似的方式执行此操作listA
,即
@Autowired
private MongoOperations operations;
public void addStuff(String id, Stuff stuff) {
operations.updateFirst(Query.query(Criteria.where("_id").is(id)),
new Update().addToSet("listA", stuff), Stuffs.class);
}
但是我无法生成正确的查询/标准。
提前致谢。