Spring mongodb获取保存后插入项目的ID

Mad*_*uja 11 mongodb spring-mongo

我正在使用Spring MongoDb.

我使用insert方法创建各种实体:http: //docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb/core/MongoOperations.html#insert-java.lang.Object -

但是,所有方法都返回void.我需要返回ObjectId插入的文档.

获得它的最佳方法是什么?

Sim*_*mon 27

这非常有趣,我想我会分享.我刚刚在上面的BatScream评论的帮助下找到了解决方案:

您将创建一个对象并将其插入MongoDB:

    Animal animal = new Animal();
    animal.setName(name);
    animal.setCat(cat);

    mongoTemplate.insert(animal);
Run Code Online (Sandbox Code Playgroud)

您的动物类看起来像所有字段的getter和设置:

public class Animal {

    @Id
    @JsonProperty
    private String id;
    @JsonProperty
    private String name;
    @JsonProperty
    private String cat;

    public String getId() {
        return id;
    }
}
Run Code Online (Sandbox Code Playgroud)

在完成插入之后mongoTemplate.insert(animal);,您实际上可以调用该方法animal.getId(),它将返回创建的ObjectId.

  • 我尝试了“mongoOperations.insert(thing)”,然后尝试了“thing.getId()”,但它返回了“null”。 (2认同)