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

MongoDB, thêm {field:value} mới trong tài liệu nhúng hiện có với ký hiệu chấm nhiều cấp?

Những gì bạn đang cố gắng làm không thể thực hiện được với lược đồ của bạn. Ký hiệu dấu chấm có thể là nhiều cấp nhưng nếu có nhiều hơn một cấp là một mảng, nó không thể được giải quyết bằng cách sử dụng toán tử vị trí '$'.

Ví dụ. bạn cần làm:

db.my_collection.update( 
    {'websites.blog_posts.url': 'http://www.example.com/01.html' },
    {'$set': {'websites.$.blog_posts.$.impressions': 549}},
     true );

Nhưng không thể có hai toán tử vị trí trong bản cập nhật vì MongoDB chỉ có thể xác định vị trí của một phần tử trong mảng đầu tiên.

Lựa chọn duy nhất của bạn là thiết kế lại giản đồ của bạn để có một bộ sưu tập dành riêng cho các trang web của người dùng (trong trường hợp này cũng tốt hơn vì các lý do khác).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chèn đối tượng python trong mongodb

  2. Mongoose luôn trả về một mảng trống NodeJS

  3. MongoDB:Làm thế nào để truy vấn một chuỗi thời gian với dữ liệu không đầy đủ?

  4. Làm cách nào để cập nhật mảng lồng nhau sâu với C # MongoDB.Driver?

  5. MongoDB $ indexOfBytes