Java操作MongoDB時在insert后如何獲取ObjectId


  在Java操作MongoDB時想在inset后獲取到數據庫中_id的值,其實是可以在insert成功后直接獲取到的,不過有點細節需要注意一下。下面直接結合示例代碼來說明:

  (1)假設有這樣一個實體類:

public class TestDO {
    private String id;
    private String name;
    private String age;
    private String sex;
    private String address;
    private String hobby;

    public TestDO() {
        this.id = null;
        this.name = "";
        this.age = "";
        this.sex = "";
        this.address = "";
        this.hobby = "";
    }

    public TestDO(String id, String name, String age, String sex, String address, String hobby) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.address = address;
        this.hobby = hobby;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }

    @Override
    public String toString() {
        return "TestDO{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", age='" + age + '\'' +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                ", hobby='" + hobby + '\'' +
                '}';
    }
}

  (2)插入操作

private final String collectionName = "test_db";
@Autowired
private MongoTemplate mongoTemplate;

TestDO testDo = new TestDO();
testDo.setId(null); // 最好這樣處理一下 mongoTemplate.insert(testDo, collectionName );
String objectId = testDo.getId(); // 獲取到ObjectId值了

  (3)注意事項

  若想能正確獲取到_id的值,那么實體類中必須要有id字段屬性,同時在示例化時要么在構造函數中將this.id賦值為null,要么在實例化后調用setId(null),總之就是要在insert時一定要讓id值為null


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM