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

Cập nhật MongoDB Deep Array

Thật không may, hiện tại, chỉ có thể sử dụng một vị trí "$" duy nhất cho mỗi bản cập nhật. Điều này giới hạn cập nhật đối với một mảng được nhúng duy nhất, tương tự như ví dụ trong tài liệu:http://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator(Từ bài đăng của bạn, có vẻ như bạn đã tìm thấy điều này, nhưng tôi đã bao gồm liên kết vì lợi ích của bất kỳ người dùng nào khác đọc bài đăng này.)

Để cập nhật, bạn sẽ phải biết vị trí của hai trong ba điều sau:Vị trí của ban nhạc trong mảng "ban nhạc", vị trí của album trong mảng album hoặc vị trí của bản nhạc trong mảng "đường đi".

Có một yêu cầu tính năng cho chức năng này và nó được dự kiến ​​cho phiên bản 2.3.0 (mặc dù điều này có thể thay đổi).
https://jira.mongodb.org/browse/SERVER-831 "Đối sánh nhà điều hành vị trí Mảng lồng nhau "

Hiện tại, bạn sẽ phải biết vị trí của các tài liệu con trong hai trong ba mảng:

db.music.update({genre : "Grunge", "bands.name" : "Nirvana"}, {$set:{"bands.$.albums.0.tracks.0.name":"Smells Like Teen Spirit!"}})

db.music.update({genre : "Grunge", "bands.0.albums.name" : "Nevermind"}, {$set:{"bands.0.albums.$.tracks.0.name":"Smells Like Teen Spirit!"}})

hoặc

db.music.update({genre : "Grunge", "bands.0.albums.0.tracks.order" : 1}, {$set:{"bands.0.albums.0.tracks.$.name":"Smells Like Teen Spirit!"}})



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cài đặt MongoDB

  2. Cập nhật trường MongoDB bằng cách sử dụng giá trị của trường khác

  3. Cách lập trình phân tách trước một khóa phân đoạn dựa trên GUID với MongoDB

  4. Cách tốt nhất để thực hiện tìm kiếm toàn văn trong MongoDB và Mongoose

  5. Tạo chỉ mục văn bản với các trọng lượng trường khác nhau trong MongoDB