Hướng dẫn how does mongodb manage data? - mongodb quản lý dữ liệu như thế nào?

Tài liệu về nhà → Hướng dẫn sử dụng MongoDBMongoDB Manual

Trên trang này

  • Những nền tảng nào mà MongoDB hỗ trợ?
  • MongoDB có được cung cấp như một dịch vụ được lưu trữ không?
  • Làm thế nào để một bộ sưu tập khác với một bảng?
  • Làm cách nào để tạo cơ sở dữ liệu và bộ sưu tập?
  • Làm cách nào để xác định hoặc thay đổi lược đồ thu thập?
  • MongoDB có hỗ trợ SQL không?
  • MongoDB có hỗ trợ giao dịch không?
  • MongoDB có xử lý bộ nhớ đệm không?
  • Làm thế nào để MongoDB giải quyết SQL hoặc tiêm truy vấn?

Tài liệu này trả lời một số câu hỏi phổ biến về MongoDB.

Để biết danh sách các nền tảng được hỗ trợ, xem hỗ trợ nền tảng.

Đúng. MongoDB Atlas là một dịch vụ cơ sở dữ liệu được lưu trữ trên đám mây. Để biết thêm thông tin, vui lòng truy cập MongoDB Atlas.MongoDB Atlas is a cloud-hosted database-as-a-service. For more information, please visit MongoDB Atlas.

Thay vì các bảng, cơ sở dữ liệu MongoDB lưu trữ dữ liệu của nó trong các bộ sưu tập. Một bộ sưu tập chứa một hoặc nhiều tài liệu BSON. Các tài liệu tương tự như các bản ghi hoặc hàng trong bảng cơ sở dữ liệu quan hệ. Mỗi tài liệu có một hoặc nhiều trường; Các trường tương tự như các cột trong bảng cơ sở dữ liệu quan hệ.

Mẹo

Ghi chú

Bạn có thể nhập các lệnh được tham chiếu trong Câu hỏi thường gặp này bằng cách sử dụng MongoDB Shell. Vỏ MongoDB là giao diện JavaScript tương tác với MongoDB. Bạn có thể sử dụng Shell MongoDB để truy vấn và cập nhật dữ liệu cũng như thực hiện các hoạt động quản trị.MongoDB Shell. The MongoDB Shell is an interactive JavaScript interface to MongoDB. You can use the MongoDB Shell to query and update data as well as perform administrative operations.

Nếu cơ sở dữ liệu không tồn tại, MongoDB sẽ tạo cơ sở dữ liệu khi bạn lưu trữ dữ liệu lần đầu tiên cho cơ sở dữ liệu đó.

Nếu một bộ sưu tập không tồn tại, MongoDB sẽ tạo bộ sưu tập khi bạn lưu trữ dữ liệu lần đầu tiên cho bộ sưu tập đó.

Do đó, bạn có thể chuyển sang cơ sở dữ liệu không tồn tại [use ] và thực hiện thao tác sau:

use myNewDB;
db.myNewCollection1.insertOne[ { x: 1 } ];
db.myNewCollection2.createIndex[ { a: 1 } ];

  • Phương thức db.collection.insertOne[] tạo ra bộ sưu tập myNewCollection1 nếu nó chưa tồn tại.

  • Phương thức db.collection.createIndex[] tạo chỉ mục và bộ sưu tập myNewCollection2 nếu nó chưa tồn tại.

  • Nếu cơ sở dữ liệu myNewDb không tồn tại, phương thức db.collection.createIndex[] hoặc phương thức db.collection.insertOne[] sẽ tự động tạo cơ sở dữ liệu myNewDb.

Bạn cũng có thể tạo một bộ sưu tập rõ ràng bằng phương thức

use myNewDB;
db.createCollection["myNewCollection1"];
3 nếu bạn muốn chỉ định các tùy chọn cụ thể, chẳng hạn như kích thước tối đa hoặc quy tắc xác thực tài liệu:

use myNewDB;
db.createCollection["myNewCollection1"];

Bạn không cần chỉ định một lược đồ cho một bộ sưu tập trong MongoDB. Mặc dù thông thường các tài liệu trong một bộ sưu tập có cấu trúc chủ yếu là đồng nhất, nhưng nó không phải là một yêu cầu; tức là các tài liệu trong một bộ sưu tập duy nhất không cần phải có cùng một bộ trường. Kiểu dữ liệu cho một trường cũng có thể khác nhau giữa các tài liệu trong một bộ sưu tập.

Để thay đổi cấu trúc của các tài liệu trong một bộ sưu tập, hãy cập nhật các tài liệu lên cấu trúc mới. Chẳng hạn, thêm các trường mới, xóa các trường hiện có hoặc cập nhật giá trị của trường vào một loại mới.

Đã thay đổi trong phiên bản 3.2: Tuy nhiên, bắt đầu bằng MongoDB 3.2, bạn có thể thực thi các quy tắc xác thực tài liệu cho một bộ sưu tập trong quá trình cập nhật và chèn các hoạt động.

Một số thuộc tính bộ sưu tập, chẳng hạn như chỉ định kích thước tối đa, có thể được chỉ định trong quá trình tạo rõ ràng của một bộ sưu tập và được sửa đổi. Xem

use myNewDB;
db.createCollection["myNewCollection1"];
3 và
use myNewDB;
db.createCollection["myNewCollection1"];
5. Nếu bạn không chỉ định các thuộc tính này, bạn không cần phải tạo rõ ràng bộ sưu tập vì MongoDB tạo ra các bộ sưu tập mới khi bạn lưu trữ dữ liệu lần đầu tiên cho các bộ sưu tập.

Không trực tiếp, không. Tuy nhiên, MongoDB không hỗ trợ một ngôn ngữ truy vấn phong phú của riêng mình. Để biết các ví dụ về việc sử dụng ngôn ngữ truy vấn của MongoDB, hãy xem các hoạt động CRUD MongoDB

Bạn cũng có thể sử dụng đầu nối MongoDB cho BI để truy vấn các bộ sưu tập MongoDB với SQL.MongoDB Connector for BI to query MongoDB collections with SQL.

Nếu bạn đang xem xét việc di chuyển ứng dụng SQL của mình sang MongoDB, hãy tải xuống Hướng dẫn hiện đại hóa ứng dụng MongoDB cho hướng dẫn di chuyển thực tiễn tốt nhất, lược đồ tham khảo và các tài nguyên hữu ích khác.MongoDB Application Modernization Guide for a best practices migration guide, reference schema, and other helpful resources.

Mẹo

Ghi chú

Bạn có thể nhập các lệnh được tham chiếu trong Câu hỏi thường gặp này bằng cách sử dụng MongoDB Shell. Vỏ MongoDB là giao diện JavaScript tương tác với MongoDB. Bạn có thể sử dụng Shell MongoDB để truy vấn và cập nhật dữ liệu cũng như thực hiện các hoạt động quản trị.

Nếu cơ sở dữ liệu không tồn tại, MongoDB sẽ tạo cơ sở dữ liệu khi bạn lưu trữ dữ liệu lần đầu tiên cho cơ sở dữ liệu đó.

  • Nếu một bộ sưu tập không tồn tại, MongoDB sẽ tạo bộ sưu tập khi bạn lưu trữ dữ liệu lần đầu tiên cho bộ sưu tập đó., MongoDB supports multi-document transactions on replica sets.

  • Do đó, bạn có thể chuyển sang cơ sở dữ liệu không tồn tại [use ] và thực hiện thao tác sau:, MongoDB introduces distributed transactions, which adds support for multi-document transactions on sharded clusters and incorporates the existing support for multi-document transactions on replica sets.

    Để biết chi tiết về các giao dịch trong MongoDB, hãy xem trang Giao dịch.

Quan trọng

Trong hầu hết các trường hợp, giao dịch đa tài liệu phát sinh chi phí hiệu suất lớn hơn so với ghi tài liệu đơn lẻ và sự sẵn có của các giao dịch đa tài liệu không nên là một sự thay thế cho thiết kế lược đồ hiệu quả. Đối với nhiều kịch bản, mô hình dữ liệu được chuẩn hóa [tài liệu và mảng nhúng] sẽ tiếp tục tối ưu cho các trường hợp dữ liệu và sử dụng của bạn. Đó là, đối với nhiều kịch bản, mô hình hóa dữ liệu của bạn một cách thích hợp sẽ giảm thiểu nhu cầu cho các giao dịch đa tài liệu.

Để biết các cân nhắc sử dụng giao dịch bổ sung [như giới hạn thời gian chạy và giới hạn kích thước oplog], xem thêm các cân nhắc sản xuất.

Đúng. MongoDB giữ dữ liệu được sử dụng gần đây nhất trong RAM. Nếu bạn đã tạo các chỉ mục cho các truy vấn của bạn và bộ dữ liệu làm việc của bạn phù hợp với RAM, MongoDB phục vụ tất cả các truy vấn từ bộ nhớ.

MongoDB không lưu trữ kết quả truy vấn để trả về kết quả được lưu trong bộ nhớ cache cho các truy vấn giống hệt nhau.

Để biết thêm thông tin về sử dụng MongoDB và bộ nhớ, hãy xem WiredTiger và sử dụng bộ nhớ.

Là một chương trình khách hàng tập hợp một truy vấn trong MongoDB, nó xây dựng một đối tượng BSON chứ không phải một chuỗi. Do đó, các cuộc tấn công tiêm SQL truyền thống không phải là một vấn đề. Thông tin chi tiết và một số sắc thái được đề cập dưới đây.

MongoDB đại diện cho các truy vấn như các đối tượng BSON. Thông thường các thư viện máy khách cung cấp một quy trình thuận tiện, không có tiêm, để xây dựng các đối tượng này. Xem xét ví dụ C ++ sau:client libraries provide a convenient, injection free, process to build these objects. Consider the following C++ example:

BSONObj my_query = BSON[ "name"

Bài Viết Liên Quan

Chủ Đề