【问题标题】:Mapping a JAVA object with a MongoDB document using jongo使用 jongo 将 JAVA 对象与 MongoDB 文档映射
【发布时间】:2016-05-11 07:21:50
【问题描述】:

您好,我有以下格式的集合

{
    "_id" : ObjectId("572eb5df1d739cc73c21f953"),
    "address" : {
            "building" : "469",
            "coord" : [
                    -73.961704,
                    40.662942
            ],
            "street" : "Flatbush Avenue",
            "zipcode" : "11225"
    },
    "borough" : "Brooklyn",
    "cuisine" : "Hamburgers",
    "grades" : [
            {
                    "date" : ISODate("2014-12-30T00:00:00Z"),
                    "grade" : "A",
                    "score" : 8
            },
            {
                    "date" : ISODate("2014-07-01T00:00:00Z"),
                    "grade" : "B",
                    "score" : 23
            },
            {
                    "date" : ISODate("2013-04-30T00:00:00Z"),
                    "grade" : "A",
                    "score" : 12
            },
            {
                    "date" : ISODate("2012-05-08T00:00:00Z"),
                    "grade" : "A",
                    "score" : 12
            }
    ],
    "name" : "Wendy'S",
    "restaurant_id" : "30112340"
}

我已经制作了 3 个非常简单的类来映射对象。餐厅、地址和等级。 它们具有以下格式 餐厅

public String _id;
public Address address;
public String town;
public String cuisine;
public String name;
public String r_id;
public Grade [] grades;

地址

public int building;
public String street;
public long zip;
public float [] coord;

等级

public String date;
public char grade;
public int score;

我已经编写了最简单的代码来只 toString() 一个映射对象,看看我得到了什么

DB db = new MongoClient().getDB("test");
Jongo j = new Jongo(db);
MongoCollection collection = j.getCollection("restaurants");
Restaurant r1 = collection.findOne().as(Restaurant.class);
System.out.println(r1);

这段代码输出

Restaurant: 572eb5df1d739cc73c21f953 / Wendy'S
Cuisine: Hamburgers
Restaurant ID: null
Address: 469 Flatbush Avenue 0, null
Grades: Tue Dec 30 05:00:00 PKT 2014 A / 8
Grades: Tue Jul 01 05:00:00 PKT 2014 B / 23
Grades: Tue Apr 30 05:00:00 PKT 2013 A / 12
Grades: Tue May 08 05:00:00 PKT 2012 A / 12

我似乎无法修复我得到的邮政编码和餐厅 ID 的空值。

请有人帮忙。谢谢。

【问题讨论】:

    标签: java mapping mongodb-java jongo


    【解决方案1】:

    您的字段名称与文档名称不匹配,因此它们不会被映射。如果我没记错的话,您可以使用 @JsonProperty 将这些 java 字段名称映射到您从 mongodb 中获取的文档名称。

    【讨论】:

    • 嘿,您是 MongoDB 的讲师之一吧?我对此完全陌生。你说的有效。我在哪里可以阅读有关这些注释的更多信息?
    • jongo 使用jackson annotations,所以这些文档是您的最佳选择。我不是 MongoDB 的讲师,不,但我确实为他们工作,负责维护 Morphia 以及其他职责。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多