如何从mongodb文档中的数组中检索数据

时间:2019-06-20 12:12:00

标签: java mongodb arraylist

我对如何从mongodb中检索数据以及如何将其存储在Java代码中存在疑问。我从mongodb中选择所有文档(只有5个),然后将其内容存储在Java应用程序中。

所以我的代码如下:

public class MongoReader {
    private Invoice invoice;

    public void mongoReader () {
        MongoClientURI uri = new MongoClientURI("my-url");

        try (MongoClient mongoClient = new MongoClient(uri)) {
            MongoDatabase database = mongoClient.getDatabase("BiFiBEP02");

            MongoCollection<Document> mongoCollection = database.getCollection("bifi");

            FindIterable<Document> documents = mongoCollection.find();

            for (Document document : documents){
                invoice.setCustomerId(document.getInteger("customerId"));
                invoice.setDate(document.getDate("date"));
                invoice.setInvoiceId(document.getInteger("invoiceId"));
                invoice.setInvoiceLines(document.getList("invoiceLines", ArrayList<InvoiceLine>));
                invoice.setNote(document.getString("note"));
                invoice.setPersonId(document.getInteger("personId"));
            }

        }
        catch (MongoException mongoException) {
            mongoException.printStackTrace();
        }
    }
}

document.getList()对我的输入似乎不满意。

mongo文档的示例:

"customerId" : 2,
"date" : ISODate("2018-05-16T10:23:40.049Z"),
"invoiceId" : 1,
"invoiceLines" : [
    {
        "btwCode" : "hoog",
        "productId" : 1,
        "productName" : "BiFi worstjes voordeelstrip",
        "quantity" : 20,
        "totalPrice" : 30,
        "unit" : "kg"
    },
    {
                "btwCode" : "hoog",
                "productId" : 2,
                "productName" : "BiFi worstjes kip",
                "quantity" : 20,
                "totalPrice" : 30,
                "unit" : "kg"
    },
    {
                "btwCode" : "laag",
                "productId" : 3,
                "productName" : "BiFi worstjes extra scherp",
                "quantity" : 30,
                "totalPrice" : 100.22,
                "unit" : "kg"
    },
    {
                "btwCode" : "geen",
                "productId" : 1,
                "productName" : "BiFi worstjes promotiestand",
                "quantity" : -1,
                "totalPrice" : 30.32,
                "unit" : "kg"
    }
],
"note" : "This invoice is very important!",
"personId" : 2

所以这里的问题是:我必须将invoiceLines放入Java对象的arraylist中,但是我无法从mongoDb中获得数组项。我该怎么做?

0 个答案:

没有答案