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

Redact trong mongodb có vẻ khó hiểu đối với tôi

$redact giai đoạn bắt đầu ở tài liệu gốc và các trường của nó và chỉ khi tài liệu đó đáp ứng điều kiện $$DESCEND , nó kiểm tra các tài liệu con có trong tài liệu đó. Điều đó có nghĩa là điều đầu tiên $ redact làm với tài liệu của bạn là kiểm tra điều này:

{
    "_id" : ObjectId("50b59cd75bed76f46522c34e"),
    "student_id" : 0,
    "class_id" : 2,
    "scores" : [] // Some array. I will look at this later.
}

Nó thậm chí không tìm thấy một loại type tại đây, vì vậy $eq: [ "$type" , "exam" ] là sai. Bạn đã yêu cầu $ redact làm gì khi điều kiện sai? else: "$$PRUNE" , vì vậy toàn bộ tài liệu sẽ được lược bớt trước khi kiểm tra các tài liệu phụ.

Để giải quyết vấn đề, hãy kiểm tra xem $type"exam" hoặc không tồn tại. Bạn đã không yêu cầu rõ ràng một giải pháp hiệu quả, vì vậy tôi sẽ để nó như một bài tập cho bạn để tìm ra cách thực hiện điều này.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lỗi:Không thể init client | mongo-connect express-session

  2. Hướng dẫn truy vấn trong dữ liệu mùa xuân MongoDB

  3. MongoDB BulWrite ()

  4. Làm cách nào để định cấu hình chỉ mục mongoDB trong django-nonrel mà không cần sử dụng Mô hình?

  5. Trường dự án trong tài liệu nhúng trong mảng nhúng