sql >> Database >  >> NoSQL >> MongoDB

Kan ik nog steeds toegang krijgen tot een sitecore-contactfacet nadat de sessie is gewist?

Na veel debuggen, prutsen en testen kwam ik er eindelijk achter. Mijn probleem, zo bleek, was niet het schrijven naar Mongo, het was in het teruglezen van Mongo nadat het was geschreven.

De sitecore-documentatie lijkt (zoals gewoonlijk) een nogal fundamenteel onderdeel van de werking hiervan volledig te missen. Ongeveer een derde van de ver weg in de documenten die erin staan :

Oké, dit is erg misleidend. Wat dit EnsureAttribute lijkt te doen, is het laden van de gegevens voor het facet in de huidige klasse van mongo. Als je dit niet doet voor elke eigenschap in uw facet, dan stelt het niet de waarde van de mongoDb in! Dit was mijn fout, ik had niet elke eigenschap in de klas "gewaarborgd".

Dus wat er gebeurde is,

  • Ik heb mijn gegevens in het facet geplaatst
  • de facetgegevens blijven bestaan ​​in de sessie en ik kan ze zien, openen, wijzigen, enz.
  • De gegevens worden uiteindelijk naar Mongo gespoeld (xDb als het moet)
  • de gebruiker komt terug, het systeem herkent ze correct (het is niet nodig om de gebruiker te identificeren , de SC_ANALYTICS_GLOBAL_COOKIE doet dit voor u)
  • Maar het laadt de gegevens niet (uit mongo en terug in de sessie) tenzij je het "verzekert".

Dus de EnsureAttribute "declareert geen waardetype" (dit is gewoon helemaal verkeerd naar mijn mening) het laadt de gegevens uit mongodb en in de huidige Session .



  1. MongoDB Beste manier om opeenvolgende database-items te koppelen en te verwijderen

  2. Mongoose, indexlocaties array

  3. MongoDB C # Driver - hoe _id op te slaan als ObjectId, maar toe te wijzen aan string Id-eigenschap?

  4. Hoe een string naar BSON te converteren?