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

Czy po opróżnieniu sesji nadal mogę uzyskać dostęp do aspektu kontaktu Sitecore?

Po wielu debugowaniach, manipulacjach i testowaniu w końcu to rozgryzłem. Okazało się, że moim problemem nie było pisanie do mongo, ale czytanie z powrotem z mongo, gdy zostało napisane.

Dokumentacja sitecore wydaje się (jak zwykle) całkowicie pomijać dość podstawową część tego działania. Około jedna trzecia w dół dokumentów, które zawiera :

Ok, to bardzo mylące. Co to EnsureAttribute wydaje się, że wystarczy załadować dane dla aspektu do bieżącej klasy z mongo. Jeśli nie zrobisz tego dla każdej usługi w twoim aspekcie to nie ustawia wartości z mongoDb! To był mój błąd, nie „zapewniłem” wszystkich właściwości w klasie.

Więc to, co się działo,

  • Wstawiam swoje dane do aspektu
  • Dane aspektu pozostają w sesji i mogę je zobaczyć, uzyskać do nich dostęp, zmienić je itp.
  • Dane są ostatecznie opróżniane do mongo (xDb, jeśli musisz)
  • użytkownik powraca, system rozpoznaje go poprawnie (nie ma potrzeby identyfikacji użytkownika , SC_ANALYTICS_GLOBAL_COOKIE robi to dla ciebie)
  • Ale nie ładuje danych (z mongo iz powrotem do sesji), chyba że „zapewnisz” to.

Tak więc EnsureAttribute nie „deklaruje typu wartości” (moim zdaniem jest to po prostu całkowicie błędne) ładuje dane z mongodb i do bieżącej Session .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak wstawić dokument z datą w mongo?

  2. 3 sposoby na uzyskanie tygodnia z daty w MongoDB

  3. sql operacje „podobne” na liczbach w mongodb

  4. Jak zaktualizować i upsserować wiele dokumentów w MongoDB za pomocą sterowników C#?

  5. MongoDB:nie uwzględnia wielkości liter i akcentu