Почему поддержка Spring-Data-MongoDB не извлекает все вложенные дочерние записи с данными?

У меня есть коллекция MongoDB, например, следуйте

MongoDB JSON:

 {
        "_id" : "1",
        "_class" : "com.AColl",
        "BColDate" : {
            "BName" : "xx",
            "BFirstName" : "97908",
            "BList" : []
        },
        "CCollList" : [ 
            {
                "CId" : "1",
                "Cname" : "abc"
                "CList" : [ 
                    {
                        "S" : "N",
                        "Value1" : "",
                        "Val2" : "qq",
                        "Val3" : "ww1"
                    }
                ],
                "addres1" : "",
                "status" : false
            }, 
            {
                "CId" : "2",
                "Cname" : "abc"
                "CList" : [ 
                    {
                        "S" : "N",
                        "Value1" : "",
                        "Val2" : "qq",
                        "Val3" : "ww1"
                    }
                ],
                "addres1" : "",
                "status" : false
            }, 
            {
                "CId" : "3",
                "Cname" : "abc"
                "CList" : [ 
                    {
                        "S" : "N",
                        "Value1" : "",
                        "Val2" : "qq",
                        "Val3" : "ww1"
                    }
                ],
                "addres1" : "",
                "status" : false
            }
        ]
    }

Java PoJo:

 @Document(collection = "test")
    class Test implements Serializable{
        private static final long serialVersionUID = 1L;
        @Id
        @Indexed
        private String id;
        @Field("bbcoll")
        private BColl bbcoll;
        @Field("CCollList")
        private List<CCollList> CCollList;
    }

    class BColl implements Serializable {
        private String BName;
        private String BFirstName;
        private List<BList> bList;
    }

    class CCollList implements Serializable {
        private String CId;
        private String CName;
        private List<CList> bList;
    }

    class CList implements Serializable {
        private String S;
        private String Value1;
        private String Value2;
        private String Value3;
    }

Код Java - запрос Spring Data MongoDB:

Test col = mongoOperation.findOne(query, Test.class);

Ответ на запрос

Ответ выполнения запроса данных Spring следующий:

{
 "_id" : "1",
 "_class" : "com.AColl",
 "BColDate" :
 { "BName" : "xx", "BFirstName" : "97908", "BList" : [] },
 "CCollList" : [ 
 {
 "CId" : "1",
 "Cname" : "abc"
 "CList" : [
 { "S" : "N", "Value1" : "", "Val2" : "qq", "Val3" : "ww1" }
 ],
 "addres1" : "",
 "status" : false
 }, 
 {
 "CId" : "2",
 "Cname" : "abc"
 "CList" : [
 { "S" : null, "Value1" : null, "Val2" : null, "Val3" : null }
 ],
 "addres1" : "",
 "status" : false
 }, 
 {
 "CId" : "3",
 "Cname" : "abc"
 "CList" : [
 { "S" : null, "Value1" : null, "Val2" : null, "Val3" : null }
 ],
 "addres1" : "",
 "status" : false
 }
 ]
}

пожалуйста, обратитесь к ответу Список. Я могу получить действительный ответ на один раз section (), другие значения раздела CList загружаются как нулевое значение, но в MongoDB у меня есть значения для этого раздела. Почему возникает эта ошибка и есть идеи? Эту проблему я недавно обнаружил в среде производства и тестирования из-за этой проблемы, теперь мы думаем об альтернативном решении вместо того, чтобы полагаться только на данные mongo.

Вопросов:

Когда я пытаюсь перебрать значение объекта CList для «Cid» = 2/3/1 и значения списка коллекций MongoDB равны нулю, но в MongoDB значения существуют (согласно json), а объект списка не равен нулю.

Почему эта проблема возникает в spring-date-mongoDB (версия 1.9)? в противном случае сообщите мне, что эта проблема была выявлена ​​ранее?

Я действительно ценю твою помощь.

Запрос: {"id": "1"}, Поля: null, Сортировка: null

Pandiyan Rengasamy 11.04.2018 15:11

Вы имеете в виду: Query: {"_id": "1"} ??

Atish 11.04.2018 16:05

это мой json-запрос для извлечения данных из MongoDB,

Pandiyan Rengasamy 14.04.2018 12:10
Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
3
104
1

Ответы 1

После того, как вы с трудом прочитали эту проблему, кажется, что у вас возникли проблемы с именованием ваших классов и свойств java таким образом, чтобы они соответствовали значениям в хранилище. Используйте аннотацию @Field, чтобы согласовать имена свойств с теми, которые используются в магазине.

Имея это свойство bList в классе CCollList, следует называть CList, как оно есть в вашем магазине.

"CCollList" : [ 
        {
            "CId" : "1",
            "Cname" : "abc"
            "CList" : [ 

В остальном, пожалуйста, постарайтесь придерживаться определенных языковых соглашений, это сделает код более читаемым и поможет другим быстрее понять его.

Спасибо Кристофу Штроблу.

Pandiyan Rengasamy 14.04.2018 12:12

пожалуйста, обратитесь к разделу ответа на запрос для получения дополнительной информации

Pandiyan Rengasamy 14.04.2018 12:36

Другие вопросы по теме