Với MongoDB, bạn có thể chỉ cửa hàng đối tượng JSON và lấy chúng hoàn toàn hình thành, do đó bạn không thực sự cần một lớp ORM và bạn dành ít thời gian CPU dịch dữ liệu của bạn qua lại. Các nhà phát triển phía sau MongoDB cũng đã thực hiện mở rộng quy mô theo chiều ngang cơ sở dữ liệu một ưu tiên cao hơn và cho phép bạn chạy mã Javascript tùy ý để xử lý trước dữ liệu ở phía DB (cho phép lọc kiểu dữ liệu bản đồ).
Nhưng bạn mất một số lợi ích này: Bạn không thể tham gia hồ sơ. Trên thực tế, cấu trúc JSON bạn lưu trữ chỉ có thể được thực hiện thông qua các kết nối trong SQL, nhưng trong MongoDB bạn chỉ có một cấu trúc cho dữ liệu của mình, trong khi trong SQL bạn có thể truy vấn khác nhau và dữ liệu của bạn được biểu diễn theo nhiều cách khác nhau dễ dàng hơn. cần phải làm rất nhiều phân tích trên cơ sở dữ liệu của bạn, MongoDB sẽ làm cho khó hơn. Ngôn ngữ truy vấn trong MongoDB là "khó khăn hơn", theo ý kiến của tôi, hơn SQL, một phần vì nó ít quen thuộc hơn, và một phần vì các tính năng truy vấn "cảm thấy" được đặt một cách lộn xộn, một phần để làm cho nó hợp lệ JSON, và một phần vì có nghĩa đen là một vài cách để làm điều tương tự, và một số là những cách cũ hơn mà không phải là hữu ích hoặc định dạng thường xuyên như những người khác. Và có thêm sự phức tạp của mảng và các loại đối tượng phụ trên thiết kế dựa trên hàng đơn giản của SQL, do đó cú pháp phải có khả năng xử lý truy vấn cho các mảng chứa một số giá trị bạn đã xác định, chứa tất cả của giá trị bạn đã xác định, chỉ chứa chỉ giá trị bạn đã xác định và chứa không có giá trị bạn đã xác định. Sự phân biệt giống nhau áp dụng cho các khóa đối tượng và giá trị của chúng, và điều này làm cho cú pháp truy vấn khó nắm bắt hơn. (Và trong khi tôi có thể thấy nhu cầu về các trường hợp cạnh, tham số truy vấn $where
, có chức năng javascript chạy trên mọi bản ghi dữ liệu và trả về boolean, là một bài hát Siren vì bạn có thể dễ dàng xác định đối tượng bạn muốn để trả lại hay không, nhưng nó phải chạy trên mỗi bản ghi trong cơ sở dữ liệu, không có chỉ mục nào có thể được sử dụng.)
Vì vậy, nó phụ thuộc vào những gì bạn muốn làm, nhưng vì bạn nói nó là dành cho Google Documents clone, bạn có lẽ không quan tâm đến bất kỳ đại diện nào nhưng bản trình bày tài liệu, chính bạn và có thể là chỉ truy vấn dựa trên ID tài liệu, tên tài liệu hoặc ID/tên của chủ sở hữu phức tạp trong truy vấn. Sau đó, tôi muốn nói là có thể lấy biểu diễn JSON của tài liệu mà người dùng của bạn đang chỉnh sửa và chỉ cần ném nó vào cơ sở dữ liệu và tự động lập chỉ mục các trường quan trọng này, đáng giá của việc học một cơ sở dữ liệu mới. .
Nguồn
2012-04-11 16:45:52
cảm ơn vì đã dành thời gian trả lời tôi, đọc điều đó. – user1305989