MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Spring-data-mongo nie może utworzyć instancji java.util.List za pomocą Constructor

Kiedy $unwind reviews pole, zwracana struktura json zapytania nie pasuje do Twojego Hotel klasa już. Ponieważ $unwind operacja sprawia, że ​​reviews obiekt podrzędny zamiast listy. Jeśli wypróbujesz zapytanie w robomongo lub innym narzędziu, zobaczysz, że zwracany obiekt jest taki

{
  "_id" : ObjectId("59b519d72f9e340bcc830cb3"),
  "id" : "59b23c39c70ff63135f76b14",
  "name" : "Signature",
  "reviews" : {
    "id" : 1,
    "userName" : "Salman",
    "rating" : 8,
    "approved" : true
  }
}

Powinieneś więc użyć innej klasy zamiast Hotel jak UnwindedHotel

public class UnwindedHotel {

    private String name;
    private int pricePerNight;
    private Address address;
    private Review reviews;
}

UnwindOperation unwindOperation = Aggregation.unwind("reviews");
Aggregation aggregation = Aggregation.newAggregation(unwindOperation);
AggregationResults<UnwindedHotel> results=mongoOperations.aggregate(aggregation,"hotel", UnwindedHotel.class);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zapytanie grupy Mongoose w node.js / trasa ekspresowa

  2. MongoDB Pobieranie dokumentów wolno (używane indeksowanie)

  3. Jak wysyłać zapytania z Mongoose pre hook w aplikacji Node.js / Express?

  4. Długość wartości pola tekstowego w mongoDB

  5. Wstaw MongoDB()