У меня есть коллекция 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)? в противном случае сообщите мне, что эта проблема была выявлена ранее?
Я действительно ценю твою помощь.
Вы имеете в виду: Query: {"_id": "1"} ??
это мой json-запрос для извлечения данных из MongoDB,

После того, как вы с трудом прочитали эту проблему, кажется, что у вас возникли проблемы с именованием ваших классов и свойств java таким образом, чтобы они соответствовали значениям в хранилище. Используйте аннотацию @Field, чтобы согласовать имена свойств с теми, которые используются в магазине.
Имея это свойство bList в классе CCollList, следует называть CList, как оно есть в вашем магазине.
"CCollList" : [
{
"CId" : "1",
"Cname" : "abc"
"CList" : [
В остальном, пожалуйста, постарайтесь придерживаться определенных языковых соглашений, это сделает код более читаемым и поможет другим быстрее понять его.
Спасибо Кристофу Штроблу.
пожалуйста, обратитесь к разделу ответа на запрос для получения дополнительной информации
Запрос: {"id": "1"}, Поля: null, Сортировка: null