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

MongoDB:Cập nhật một trường của một mục trong mảng với việc khớp với một trường khác của mục đó

Bạn thường làm điều này bằng toán tử vị trí $ , như được mô tả trong câu trả lời cho câu hỏi này:

Cập nhật trường trong mảng phần tử chính xác trong MongoDB

Thật không may, ngay bây giờ toán tử vị trí chỉ hỗ trợ một mức độ phù hợp sâu của mảng.

Có một vé JIRA cho loại hành vi mà bạn muốn: https://jira.mongodb .org / Browse / SERVER-831

Trong trường hợp bạn có thể thực hiện Switches vào một đối tượng thay vào đó, bạn có thể làm điều gì đó như sau:

db.colection.update(
    {
        _id: ObjectId("561ad881755a021904c00fb5"),
        "Switch.Ports.PortNumber": 5
    }, 
    {
        $set: {
            "Switch.Ports.$.Status": "Empty"
        }
    }
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách tạo lược đồ mảng mảng đối tượng trong Mongoose.js

  2. Đẩy và thiết lập các thao tác trong cùng một bản cập nhật MongoDB

  3. MongoDB Object.bsonSize ()

  4. MongoDB Compass - bị kẹt khi kết nối với Atlas

  5. ứng dụng sao băng của tôi có cần cả MONGO_OPLOG_URL và MONGO_URL không