3

我正在使用 MongoDB 和 Spring 3。我有以下域对象:

@Document(collection = "users")
public class User {

    @Id
    private String id;

    private List<Post> posts;
}

我想将 a 添加Post到 a User,但是最好/最有效的方法是什么?我可以看到一种以编程方式执行此操作的方法 - 找到用户,将新的帖子对象添加到列表中并再次保存用户 - 但我认为这不是非常优雅或高效。

从文档来看,我似乎需要使用$push运算符,但我似乎找不到任何关于如何使用 Spring 的 MongoTemplate 执行此操作的示例。谁能提供一个例子?

4

1 回答 1

6

$push 是向数组添加新文档的正确方法。

您可以在此演示文稿中查看示例代码(幻灯片 22)。相关行将是:

mongoTemplate.updateFirst(collection, 
... new Query(where("_id").is(...)),
... new Update().push("field", dbo));
于 2012-06-06T06:18:15.193 回答