簡體   English   中英

使用MongoDB和MongoJack進行簡單對象插入

[英]Simple object insertion using MongoDB and MongoJack

我正在嘗試遵循MongoJack教程,但我沒有完成第一項任務:將對象插入數據庫。

這就是我所擁有的:

DB db = new MongoClient().getDB("mydb");

JacksonDBCollection<MyDomainObject, String> coll =
    JacksonDBCollection.wrap(db.getCollection("coll"),
                             MyDomainObject.class,
                             String.class);

MyDomainObject obj = new MyDomainObject(ObjectId.get().toString(), 123456789L);

WriteResult<MyDomainObject, String> result = coll.insert(obj);

System.out.println(result.getSavedId());

MyDomainObject類的位置如下所示:

class MyDomainObject {

    // @org.mongojack.ObjectId  doesn't work
    public String id;
    public long someValue;

    public MyDomainObject(String id, long someValue) {
        this.id = id;
        this.someValue = someValue;
    }

}

使用上面的代碼我最終得到以下異常:

Exception in thread "main" java.lang.ClassCastException: org.bson.types.ObjectId cannot be cast to java.lang.String
    at Test.main(Test.java:26)

我不能為我的生活找出原因。 任何幫助贊賞。

顯然我所要做的就是重命名

public String id;

public String _id;

(使用@JsonProperty("_id")注釋字段似乎也可以解決問題@JsonProperty("_id")沒有辦法說public String id應該替換 _id字段。如果有人知道如何做到這一點,我對如何做有興趣。

您還可以使用@ org.mongojack.Id注釋任何String字段。 這對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM