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

Bản cập nhật Mongoose 'không thể sử dụng phần (..) để duyệt qua phần tử

Cố gắng sử dụng vị trí $ nhà điều hành trong bản cập nhật xác định một phần tử trong một mảng để cập nhật mà không chỉ định rõ ràng vị trí của phần tử trong mảng, nhưng điều này sẽ chỉ khớp với một phần tử tại một thời điểm:

 User.update(
    { 
        "local.email": user,
        "devices.id": { "$ne": deviceID },
        "devices.name": { "$ne": deviceName }
    }, 
    { 
        "$set": { 
            "devices.$.id": deviceID,
            "devices.$.name": deviceName 
        }
    } 
);

Từ tài liệu , toán tử vị trí $ hoạt động như một trình giữ chỗ cho phần tử đầu tiên phù hợp với tài liệu truy vấn và trường mảng phải xuất hiện như một phần của tài liệu truy vấn do đó tài liệu truy vấn

"devices.id": { "$ne": deviceID },
"devices.name": { "$ne": deviceName }

chứa device mảng và sẽ khớp với các tài liệu đó nơi device mảng id không bằng deviceID và tên không giống với tên mà bạn đang cố gắng cập nhật. Điều này thậm chí sẽ khớp với các tài liệu trong đó device mảng trống.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoT Mô tả cách thêm nhiều hơn hai orOperator trong Truy vấn

  2. Làm thế nào để gọi db.eval () qua mongoose?

  3. Làm cách nào để loại trừ khỏi tài liệu kết quả tìm kiếm với các trường không có trong truy vấn?

  4. Làm cách nào để đếm tất cả các tài liệu trong một bộ sưu tập và sử dụng cont trong bộ điều khiển, với MongoDB và Express.js?

  5. mongo sao chép từ bộ sưu tập này sang bộ sưu tập khác (trên cùng một db)