sql >> Databáze >  >> NoSQL >> MongoDB

Mohu i nadále přistupovat ke kontaktnímu aspektu sitecore, jakmile je relace vyprázdněna?

Po spoustě ladění, šťouchání a testování jsem na to konečně přišel. Ukázalo se, že mým problémem nebylo psaní do mongo, ale bylo to ve čtení zpět z mongo, jakmile bylo napsáno.

Zdá se, že dokumentace sitecore (jako obvykle) zcela postrádá poměrně zásadní část fungování tohoto. Asi třetina v dokumentech níže :

Dobře, to je velmi zavádějící. Co to je EnsureAttribute Zdá se, že načte data pro aspekt do aktuální třídy z mongo. Pokud to neuděláte pro každou službu ve vašem aspektu pak nenastaví hodnotu z mongoDb! To byla moje chyba, neměl jsem "zajištěnou" každou vlastnost ve třídě.

Takže to, co se dělo, je

  • Vložil jsem svá data do aspektu
  • data fazety zůstávají v relaci a já je vidím, přistupuji k nim a měním je atd.
  • Data jsou nakonec vyprázdněna do mongo (xDb, pokud musíte)
  • uživatel se vrátí, systém ho správně rozpozná (uživatele není třeba identifikovat , SC_ANALYTICS_GLOBAL_COOKIE dělá to za vás)
  • Ale nenačte data (mimo mongo a zpět do relace), pokud to „nezajistíte“.

Tedy EnsureAttribute "nedeklaruje typ hodnoty" (toto je podle mého názoru úplně špatně) načte data z mongodb a do aktuální Session .



  1. Mongoose Najít a odebrat

  2. Vytvoření dynamického schématu pomocí mongoose

  3. Streamování výsledku agregované operace pomocí spring-data-mongodb

  4. MongoDB- Vložte, pokud neexistuje, jinak přeskočte