我正在使用MongoDB和Spring 3.我有以下域对象:
@Document(collection = "users")
public class User {
@Id
private String id;
private List<Post> posts;
}
我想向Post
添加User
,但最好/最有效的方法是什么?我可以看到一种以编程方式执行此操作的方法 - 找到用户,将新的帖子对象添加到列表中并再次保存用户 - 但我认为这不是非常优雅或高效。
从文档中我似乎需要使用$push
运算符,但我似乎无法找到有关如何使用Spring的MongoTemplate执行此操作的任何示例。任何人都可以提供一个例子吗?
答案 0 :(得分:6)
$ push是将新文档添加到数组的正确方法。
您可以在this presentation中看到示例代码(幻灯片22)。相关的行将是:
mongoTemplate.updateFirst(collection,
... new Query(where("_id").is(...)),
... new Update().push("field", dbo));