【发布时间】:2021-07-08 10:10:49
【问题描述】:
我有一个 mongo 集合,并且我已将所有元素定义为 BSON 类。 例如。
_id: 12345
Person
-> Name
surname: smith
forename: john
-> Address
number: 1
street: the street
使用这种读取数据很简单,并且可以很好地在一个类中输出,因此任何消费者都对 mongo 没有任何了解。
现在进行更新,我只想获取一个客户密钥,例如 _id 并更新地址,但传入一个地址类。
所以更新(_id, Address.class)
updateAccount(String personId, Account account) {
// set up connection to mongo etc...
// Update record
Document updDocQuery = new Document("_id", personId);
Bson update = new Document("$set", address);
UpdateOptions updateOptions = new UpdateOptions().upsert(true)
mongoCollection.updateOne(updDocQuery, update, updateOptions);
}
这可能吗?我玩过,但我似乎无法找到一种方法来确保 mongo 在正确的级别更新集合中的文档,即在“Person”下而不是在顶层。我确定我只是遗漏了一些东西,除非这是一个限制并且我需要以某种方式指定层次结构。
任何指点将不胜感激。
【问题讨论】: