MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tôi vẫn có thể truy cập khía cạnh liên hệ của sitecore sau khi phiên bị xóa?

Sau rất nhiều lần gỡ lỗi, tìm kiếm và thử nghiệm, cuối cùng tôi đã tìm ra điều này. Vấn đề của tôi, hóa ra, không phải là viết cho mongo mà là đọc ngược mongo một khi nó đã được viết.

Tài liệu sitecore dường như (như thường lệ) hoàn toàn bỏ sót một phần khá cơ bản của công việc này. Khoảng một phần ba tải xuống các tài liệu mà nó nêu :

Ok, điều này là rất sai lầm. Cái gì đây EnsureAttribute dường như việc cần làm là tải dữ liệu cho khía cạnh vào lớp hiện tại từ mongo. Nếu bạn không làm điều này cho mọi sản phẩm trong khía cạnh của bạn thì nó không đặt giá trị từ mongoDb! Đây là sai lầm của tôi, tôi đã không "đảm bảo" mọi tài sản trong lớp.

Vì vậy, những gì đã xảy ra là,

  • Tôi đưa dữ liệu của mình vào khía cạnh
  • dữ liệu khía cạnh vẫn tồn tại trong Phiên và tôi có thể thấy, truy cập vào nó, thay đổi nó, v.v.
  • Dữ liệu cuối cùng được chuyển sang mongo (xDb nếu bạn phải)
  • người dùng trả lại, hệ thống nhận dạng họ một cách chính xác ( không cần xác định người dùng , SC_ANALYTICS_GLOBAL_COOKIE làm điều này cho bạn)
  • Nhưng nó không tải dữ liệu (ra khỏi mongo và quay trở lại phiên) trừ khi bạn "đảm bảo" nó.

Vì vậy, EnsureAttribute không "khai báo loại giá trị" (điều này hoàn toàn sai theo quan điểm của tôi) nó tải dữ liệu ra khỏi mongodb và vào Session hiện tại .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để xử lý các truy vấn phân trang đúng cách với mongodb và php?

  2. Viết luồng vào mongoDB trong Java

  3. MongoDB $ inc

  4. Kết nối MongoDb bị từ chối

  5. Làm thế nào để sử dụng tính năng chèn hàng loạt không có thứ tự với Mongoskin?