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

$ in yêu cầu một mảng làm đối số thứ hai, tìm thấy:thiếu

Tùy chọn đầu tiên -> Sử dụng tổng hợp

Bởi vì một số tài liệu trong bộ sưu tập của bạn có thể có hoặc không thể chứa permissions trường hoặc là loại không bằng mảng, đó là lý do tại sao bạn gặp lỗi này.

Bạn có thể tìm thấy $type của trường và nếu nó không phải là một mảng hoặc không tồn tại trong tài liệu của bạn, bạn có thể thêm nó dưới dạng một mảng với $addFields $cond tổng hợp

db.collection.aggregate([
  { "$addFields": {
    "permissions": {
      "$cond": {
        "if": {
          "$ne": [ { "$type": "$permissions" }, "array" ]
        },
        "then": [],
        "else": "$permissions"
      }
    }
  }},
  { "$project": {
    "filteredChildren": {
      "$filter": {
        "input": "$moduleChildren",
        "as": "moduleChild",
        "cond": {
          "$in": [ "$$moduleChild._id", "$permissions" ]
        }
      }
    }
  }}
])

Tùy chọn thứ hai ->

Đi tới trình bao mongo hoặc robomongo của bạn trên bất kỳ GUI nào bạn đang sử dụng và chạy lệnh này

db.collection.update(
  { "permissions": { "$ne": { "$type": "array" } } },
  { "$set": { "permissions": [] } },
  { "multi": true }
)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. tạo biểu mẫu đăng ký và đăng nhập trong node.js và mongodb

  2. Mongoose tham số truy vấn tìm kiếm tùy chọn?

  3. Làm thế nào để định cấu hình MongoDB trình điều khiển Java MongoOptions để sử dụng trong sản xuất?

  4. Chuyển đổi một ngày được lưu trữ mongo trở lại thành mili giây kể từ kỷ nguyên Unix khi được tải?

  5. Kết hợp PostgreSQL và MongoDB (dưới dạng phụ trợ Django)