Độ dài tên chỉ mục Mongodb

Vì tên cơ sở dữ liệu không phân biệt chữ hoa chữ thường trong MongoDB, nên tên cơ sở dữ liệu không thể chỉ khác nhau về chữ hoa chữ thường

Hạn chế về tên cơ sở dữ liệu cho Windows¶

Đối với triển khai MongoDB chạy trên Windows, tên cơ sở dữ liệu không được chứa bất kỳ ký tự nào sau đây

/\. "$*<>:|?

Ngoài ra, tên cơ sở dữ liệu không thể chứa ký tự null

Hạn chế về tên cơ sở dữ liệu cho hệ thống Unix và Linux¶

Đối với triển khai MongoDB chạy trên hệ thống Unix và Linux, tên cơ sở dữ liệu không được chứa bất kỳ ký tự nào sau đây

/\. "$

Ngoài ra, tên cơ sở dữ liệu không thể chứa ký tự null

Độ dài của tên cơ sở dữ liệu¶

Tên cơ sở dữ liệu không được để trống và phải có ít hơn 64 ký tự

Hạn chế về tên bộ sưu tập¶

Tên bộ sưu tập phải bắt đầu bằng dấu gạch dưới hoặc ký tự chữ cái và không được

  • chứa $ .
  • là một chuỗi rỗng (e. g. "" ).
  • chứa ký tự null
  • bắt đầu với hệ thống. tiền tố. (Dành riêng cho sử dụng nội bộ. )

Nếu tên bộ sưu tập của bạn bao gồm các ký tự đặc biệt, chẳng hạn như ký tự gạch dưới, thì để truy cập bộ sưu tập, hãy sử dụng db. getCollection() trong shell mongo hoặc một phương thức tương tự cho trình điều khiển của bạn.

Độ dài tối đa của không gian tên bộ sưu tập, bao gồm tên cơ sở dữ liệu, dấu chấm ( . ) dấu tách và tên bộ sưu tập (i. e. . ), là 120 byte.

Hạn chế về tên trường¶

Tên trường không được chứa dấu chấm (i. e. . ) hoặc ký tự rỗng, và chúng không được bắt đầu bằng ký hiệu đô la (i. e. $ ). See /faq/diagnostics 更多关于MongoDB内存使用的问题。 for an alternate approach.

Không gian tên¶

Độ dài không gian tên¶

Độ dài tối đa của không gian tên bộ sưu tập, bao gồm tên cơ sở dữ liệu, dấu chấm ( . ) dấu tách và tên bộ sưu tập (i. e. . ), là 120 byte.

参见

Hạn chế đặt tên

Số lượng không gian tên¶

在 3. 0 版更改

Đối với MMAPv1, số lượng không gian tên được giới hạn ở kích thước của tệp không gian tên chia cho 628

Tệp không gian tên 16 megabyte có thể hỗ trợ khoảng 24.000 không gian tên. Mỗi bộ sưu tập và chỉ mục là một không gian tên

Công cụ lưu trữ WiredTiger không tuân theo giới hạn này

Kích thước của tệp không gian tên¶

在 3. 0 版更改

Đối với công cụ lưu trữ MMAPv1, các tệp không gian tên không được lớn hơn 2047 megabyte

Theo mặc định, các tệp không gian tên là 16 megabyte. Bạn có thể định cấu hình kích thước bằng tùy chọn nsSize .

Công cụ lưu trữ WiredTiger không tuân theo giới hạn này

参见

Hạn chế đặt tên

Chỉ mục¶

Giới hạn khóa chỉ mục¶

Tổng kích thước của mục nhập chỉ mục, có thể bao gồm chi phí cấu trúc tùy thuộc vào loại BSON, phải nhỏ hơn 1024 byte

在 2. 6 版更改. MongoDB phiên bản 2. 6 trở lên triển khai thực thi mạnh mẽ hơn giới hạn trên chỉ mục khóa .

  • MongoDB sẽ không tạo một chỉ mục trên bộ sưu tập . Các phiên bản trước của MongoDB sẽ tạo chỉ mục nhưng không lập chỉ mục cho các tài liệu đó. index key limit. Previous versions of MongoDB would create the index but not index such documents.

  • Hoạt động lập chỉ mục lại sẽ xảy ra lỗi nếu mục nhập chỉ mục cho trường được lập chỉ mục vượt quá khóa khóa giới hạn< . Hoạt động lập chỉ mục lại xảy ra như một phần của lệnh . Reindexing operations occur as part of compactrepairDatabase cũng như . thu thập. phương thức reIndex() db.collection.reIndex() .

    Bởi vì các thao tác này loại bỏ tất cả các chỉ mục khỏi bộ sưu tập và sau đó tạo lại chúng theo trình tự, lỗi từ khóa chỉ mục key limit prevents these operations from rebuilding any remaining indexes for the collection and, in the case of the repairDatabase command, from continuing with the remainder of the process.

  • MongoDB sẽ không chèn vào bộ sưu tập được lập chỉ mục bất kỳ tài liệu nào có trường được lập chỉ mục có mục nhập chỉ mục tương ứng vượt quá khóa chỉ mục key limit, and instead, will return an error. Previous versions of MongoDB would insert but not index such documents.

  • Các cập nhật cho trường được lập chỉ mục sẽ bị lỗi nếu giá trị được cập nhật khiến mục nhập chỉ mục vượt quá khóa chỉ mục key limit.

    Nếu một tài liệu hiện có chứa một trường được lập chỉ mục có mục nhập chỉ mục vượt quá giới hạn, mọi cập nhật dẫn đến việc di chuyển tài liệu đó trên đĩa sẽ bị lỗi

  • mongorestoremongoimport sẽ không chèn tài liệu chứa trường được lập chỉ mục có mục nhập chỉ mục tương ứng sẽ vượt quá . index key limit.

  • Trong MongoDB 2. 6, các thành viên phụ của bộ bản sao sẽ tiếp tục sao chép các tài liệu có trường được lập chỉ mục có mục nhập chỉ mục tương ứng vượt quá khóa chỉ mục key limit on initial sync but will print warnings in the logs.

    Thành viên phụ cũng cho phép các hoạt động xây dựng và xây dựng lại chỉ mục trên tập hợp chứa trường được lập chỉ mục có mục nhập chỉ mục tương ứng vượt quá khóa chỉ mục . limit but with warnings in the logs.

    Với bộ bản sao phiên bản hỗn hợp trong đó bản phụ là phiên bản 2. 6 và chính là phiên bản 2. 4, thứ hai sẽ sao chép tài liệu được chèn hoặc cập nhật trên 2. 4 chính, nhưng sẽ in thông báo lỗi trong nhật ký nếu tài liệu chứa trường được lập chỉ mục có mục nhập chỉ mục tương ứng vượt quá khóa chỉ mục key limit.

  • Đối với các bộ sưu tập được phân đoạn hiện có, quá trình di chuyển đoạn dữ liệu sẽ không thành công nếu đoạn dữ liệu đó có tài liệu chứa trường được lập chỉ mục có mục nhập chỉ mục vượt quá khóa chỉ mục . limit.

Số chỉ mục trên mỗi bộ sưu tập¶

Một bộ sưu tập có thể có không quá 64 chỉ mục

Tên chỉ mục Độ dài¶

Tên chỉ mục đủ điều kiện, bao gồm không gian tên và dấu phân cách dấu chấm (i. e. tên>. tên>. $ name> ), không được dài hơn 128 ký tự.

Theo mặc định, name> là sự kết hợp của tên trường và loại chỉ mục. Bạn có thể chỉ định rõ ràng name> cho createIndex() . method to ensure that the fully qualified index name does not exceed the limit.

Số lượng trường được lập chỉ mục trong một chỉ mục tổng hợp¶

Không thể có nhiều hơn 31 trường trong một chỉ mục phức hợp

Truy vấn không thể sử dụng cả chỉ mục văn bản và chỉ mục không gian địa lý¶

Bạn không thể kết hợp truy vấn $text , yêu cầu một chỉ mục văn bản đặc biệt, với một toán tử truy vấn yêu cầu một loại chỉ mục đặc biệt khác. Ví dụ: bạn không thể kết hợp truy vấn $text với toán tử $near .

Các trường có Chỉ mục 2dsphere chỉ có thể chứa Hình học¶

Các trường có chỉ mục 2dsphere phải chứa dữ liệu hình học ở dạng cặp tọa độ hoặc dữ liệu GeoJSON. Nếu bạn cố gắng chèn một tài liệu có dữ liệu phi hình học vào một 2dsphere trường được lập chỉ mục hoặc xây dựng một 2dsphere< . index on a collection where the indexed field has non-geometry data, the operation will fail.

参见

Giới hạn chỉ mục duy nhất trong Sharding Hạn chế hoạt động

Các giá trị NaN được Công cụ lưu trữ WiredTiger trả về từ Truy vấn được bảo hiểm luôn thuộc loại double¶

Nếu giá trị của một trường được trả về từ một truy vấn nằm trong một chỉ mục là NaN , loại của giá trị đó NaN value is always double.

Chỉ mục đa phím¶

Chỉ mục đa khóa không thể hỗ trợ truy vấn được bảo hiểm

Dữ liệu¶

Số lượng tài liệu tối đa trong một bộ sưu tập giới hạn¶

在 2. 4 版更改

Nếu bạn chỉ định số lượng tài liệu tối đa cho một bộ sưu tập giới hạn bằng cách sử dụng tham số max để tạo . Nếu bạn không chỉ định số lượng tài liệu tối đa khi tạo bộ sưu tập giới hạn, sẽ không có giới hạn về số lượng tài liệu. , the limit must be less than 232 documents. If you do not specify a maximum number of documents when creating a capped collection, there is no limit on the number of documents.

Kích thước cơ sở dữ liệu¶

Công cụ lưu trữ MMAPv1 giới hạn mỗi cơ sở dữ liệu không quá 16000 tệp dữ liệu. Điều này có nghĩa là một cơ sở dữ liệu MMAPv1 duy nhất có kích thước tối đa là 32TB. Đặt bộ nhớ. mmapv1. smallFiles tùy chọn giảm giới hạn này xuống còn 8TB.

Kích thước dữ liệu¶

在 3. 0 版更改

Khi sử dụng công cụ lưu trữ MMAPv1, một phiên bản mongod đơn lẻ không thể quản lý tập dữ liệu vượt quá không gian địa chỉ bộ nhớ ảo tối đa do hệ điều hành cơ sở cung cấp .

Giới hạn bộ nhớ ảoHệ điều hànhJournaledNot JournaledLinux64 terabyte128 terabyteWindows Server 2012 R2 và Windows 8. 164 terabyte128 terabyteWindows (nếu không)4 terabyte8 terabyte

Công cụ lưu trữ WiredTiger không tuân theo giới hạn này

Số lượng Bộ sưu tập trong Cơ sở dữ liệu¶

在 3. 0 版更改

Đối với công cụ lưu trữ MMAPv1, số lượng bộ sưu tập tối đa trong cơ sở dữ liệu là một hàm của kích thước của tệp không gian tên và số lượng chỉ mục của các bộ sưu tập trong cơ sở dữ liệu

Công cụ lưu trữ WiredTiger không tuân theo giới hạn này

Xem Số của Không gian tên để biết thêm thông tin.

Bộ bản sao¶

Số thành viên của một bộ bản sao¶

在 3. 0. 0 版更改

Bộ bản sao có thể có tối đa 50 thành viên. Xem Số lượng Thành viên Bộ Bản sao Tăng lên để biết thêm thông tin về khả năng tương thích của trình điều khiển cụ thể với các bộ bản sao lớn

Số thành viên biểu quyết của một bộ bản sao¶

Bộ bản sao có thể có tối đa 7 thành viên biểu quyết. For replica sets with more than 7 total members, see 当 优先级为0的节点 是复制集中可用节点中数据最新的节点。这种情况下,另一个复制集中合格的节点将会追上该节点的数据并尝试升职为主节点。

Kích thước tối đa của Oplog được tạo tự động¶

在 2. 6 版更改

Nếu bạn không chỉ định rõ ràng kích thước oplog (i. e. với oplogSizeMB hoặc --oplogSize) MongoDB sẽ tạo một oplog không lớn hơn 50 gigabyte.

Cụm phân mảnh¶

Các cụm được chia nhỏ có các hạn chế và ngưỡng được mô tả tại đây

Sharding Hạn chế hoạt động¶

Hoạt động không khả dụng trong môi trường phân đoạn¶

Nhóm group không hoạt động với phân đoạn. Thay vào đó, hãy sử dụng mapReduce hoặc tổng hợp .

3. 0 版后已移除. db. eval() không được dùng nữa.

db. eval() không tương thích với các bộ sưu tập được phân đoạn. Bạn có thể sử dụng db. eval() với các bộ sưu tập chưa được phân đoạn trong cụm phân đoạn.

$where không cho phép tham chiếu đến đối tượng db từ $where function. This is uncommon in un-sharded collections.

Công cụ sửa đổi cập nhật $isolated không hoạt động trong môi trường sharded.

$snapshot không hoạt động trong môi trường phân đoạn.

Lệnh geoSearch không được hỗ trợ trong môi trường phân đoạn.

Các truy vấn được bảo hiểm trong các cụm phân mảnh¶

Chỉ mục không thể bao gồm truy vấn trên bộ sưu tập được phân đoạn khi chạy với mongos nếu chỉ mục không chứa khóa phân đoạn, với . Nếu một truy vấn trên một bộ sưu tập được phân đoạn chỉ xác định một điều kiện trên trường _id index: If a query on a sharded collection only specifies a condition on the _id và chỉ trả về _id field, the _id index can cover the query when run against a mongos even if the _id field is not the shard key.

在 3. 0 版更改. Trong các phiên bản trước, chỉ mục không thể bao gồm truy vấn trên bộ sưu tập được phân đoạn khi chạy với mongos .

Sharding Kích thước dữ liệu bộ sưu tập hiện tại¶

Một bộ sưu tập hiện có chỉ có thể được chia nhỏ nếu kích thước của nó không vượt quá giới hạn cụ thể. Các giới hạn này có thể được ước tính dựa trên kích thước trung bình của tất cả các giá trị khóa phân đoạn và kích thước khối được định cấu hình

重要

Các giới hạn này chỉ áp dụng cho hoạt động phân mảnh ban đầu. Bộ sưu tập được phân mảnh có thể phát triển đến bất kỳ kích thước nào sau khi kích hoạt thành công phân đoạn

Sử dụng các công thức sau để tính kích thước bộ sưu tập tối đa theo lý thuyết

maxSplits = 16777216 (bytes) / <average size of shard key values in bytes>
maxCollectionSize (MB) = maxSplits * (chunkSize / 2)

注解

Kích thước tài liệu BSON tối đa là 16MB hoặc 16777216 byte.

Tất cả các chuyển đổi nên sử dụng tỷ lệ cơ sở 2, e. g. 1024 kilobyte = 1 megabyte

Nếu maxCollectionSize nhỏ hơn hoặc gần bằng với tập hợp mục tiêu, hãy tăng kích thước khối để đảm bảo phân đoạn ban đầu thành công. Nếu có nghi ngờ về việc liệu kết quả tính toán có quá 'gần' với kích thước bộ sưu tập mục tiêu hay không, tốt hơn là nên tăng kích thước khối.

Sau khi phân mảnh ban đầu thành công, bạn có thể giảm kích thước khối nếu cần. Nếu sau này bạn giảm kích thước khối, có thể mất thời gian để tất cả các khối chia thành kích thước mới. See 修改集群中数据块的大小 for instructions on modifying chunk size

Bảng này minh họa kích thước bộ sưu tập tối đa gần đúng bằng cách sử dụng các công thức được mô tả ở trên

Kích thước trung bình của Giá trị khóa phân đoạn512 byte256 byte128 byte64 byteSố lần phân tách tối đa32,76865,536131,072262,144Kích thước bộ sưu tập tối đa (Kích thước khối 64 MB)1 TB2 TB4 TB8 TBKích thước bộ sưu tập tối đa (Kích thước khối 128 MB)2 TB4 TB8 TB16 TBKích thước bộ sưu tập tối đa (

Tất cả các thao tác update()remove() . _id field in the query specification. cập nhật()xóa() mà không cần phím phân đoạn hoặc . _id field return an error.

Chỉ mục duy nhất trong Bộ sưu tập phân đoạn¶

MongoDB không hỗ trợ các chỉ mục duy nhất trên các phân đoạn, ngoại trừ khi chỉ mục duy nhất chứa khóa phân đoạn đầy đủ làm tiền tố của chỉ mục. Trong những tình huống này, MongoDB sẽ thực thi tính duy nhất trên toàn bộ khóa, không phải một trường duy nhất

Nhìn thấy

Các ràng buộc duy nhất trên các trường tùy ý cho một cách tiếp cận khác

Số lượng tài liệu tối đa trên mỗi đoạn để di chuyển¶

MongoDB không thể di chuyển một đoạn nếu số lượng tài liệu trong đoạn vượt quá 250000 tài liệu hoặc 1. gấp 3 lần kết quả của việc chia kích thước khối được định cấu hình cho kích thước tài liệu trung bình. db. thu thập. stats() bao gồm trường avgObjSize , đại diện cho kích thước tài liệu trung bình trong bộ sưu tập.

Hạn chế của khóa Shard¶

Kích thước khóa mảnh¶

Khóa phân đoạn không thể vượt quá 512 byte

Loại chỉ mục khóa phân mảnh¶

Chỉ mục khóa phân đoạn có thể là chỉ mục tăng dần trên khóa phân đoạn, chỉ mục tổng hợp bắt đầu bằng khóa phân đoạn và chỉ định thứ tự tăng dần cho khóa phân đoạn hoặc chỉ mục băm

Chỉ mục khóa phân đoạn không thể là chỉ mục chỉ định chỉ mục đa khóa, chỉ mục văn bản hoặc chỉ mục không gian địa lý trên các trường khóa phân đoạn

Shard Key là bất biến¶

Nếu bạn phải thay đổi khóa phân đoạn

  • Kết xuất tất cả dữ liệu từ MongoDB sang định dạng bên ngoài
  • Bỏ bộ sưu tập đã phân mảnh ban đầu
  • Định cấu hình sharding bằng phím shard mới
  • Chia trước phạm vi khóa phân đoạn để đảm bảo phân phối đồng đều ban đầu
  • Khôi phục dữ liệu đã đổ vào MongoDB
Giá trị khóa phân mảnh trong tài liệu là bất biến¶

Sau khi bạn phân đoạn một bộ sưu tập, khóa phân đoạn và các giá trị của khóa phân đoạn là không thay đổi; . e

  • Bạn không thể chọn một khóa phân đoạn khác cho bộ sưu tập đó
  • Bạn không thể cập nhật giá trị của các trường khóa phân đoạn
Việc tăng phím Shard một cách đơn điệu có thể hạn chế thông lượng chèn¶

Đối với các cụm có khối lượng chèn cao, một phím phân đoạn có các phím tăng và giảm đơn điệu có thể ảnh hưởng đến thông lượng chèn. Nếu khóa phân đoạn của bạn là trường _id , hãy lưu ý rằng các giá trị mặc định của _id fields are ObjectIds which have generally increasing values.

Khi chèn tài liệu bằng các phím phân đoạn tăng dần đơn điệu, tất cả các phần chèn đều thuộc về cùng một đoạn trên một phân đoạn duy nhất. Hệ thống cuối cùng sẽ phân chia phạm vi khối nhận tất cả các thao tác ghi và di chuyển nội dung của nó để phân phối dữ liệu đồng đều hơn. Tuy nhiên, tại bất kỳ thời điểm nào, cụm chỉ hướng các hoạt động chèn vào một phân đoạn duy nhất, điều này tạo ra tắc nghẽn thông lượng chèn

Nếu các hoạt động trên cụm chủ yếu là hoạt động đọc và cập nhật, giới hạn này có thể không ảnh hưởng đến cụm

Để tránh ràng buộc này, hãy sử dụng khóa phân đoạn được băm hoặc chọn trường không tăng hoặc giảm đơn điệu

在 2. 4 版更改. Khóa phân đoạn đã băm và chỉ mục đã băm lưu trữ giá trị băm của khóa có giá trị tăng dần.

Vận hành¶

Thao tác sắp xếp¶

Nếu MongoDB không thể sử dụng chỉ mục để lấy tài liệu theo thứ tự sắp xếp được yêu cầu, kích thước tổng hợp của tất cả tài liệu trong thao tác sắp xếp, cộng với chi phí nhỏ, phải nhỏ hơn 32 megabyte

Vận hành đường ống tổng hợp¶

在 2. 6 版更改

Giai đoạn quy trình có giới hạn là 100 megabyte RAM. Nếu một giai đoạn vượt quá giới hạn này, MongoDB sẽ tạo ra lỗi. Để cho phép xử lý các tập dữ liệu lớn, hãy sử dụng tùy chọn allowDiskUse để bật các giai đoạn quy trình tổng hợp nhằm ghi dữ liệu vào các tệp tạm thời.

参见

$sort và Hạn chế bộ nhớ và $group Toán tử và bộ nhớ

Truy vấn không gian địa lý 2d không thể sử dụng toán tử $or¶

Nhìn thấy

$or and 2d 索引原理.

Diện tích Đa giác GeoJSON¶

Đối với $geoIntersects hoặc $geoWithin , nếu bạn . Đối với tất cả các đa giác GeoJSON khác có diện tích lớn hơn bán cầu, the custom MongoDB coordinate reference system in the $geometry expression; otherwise, $geoIntersects or $geoWithin queries for the complementary geometry. For all other GeoJSON polygons with areas greater than a hemisphere, $geoIntersects hoặc $geoWithin queries for the complementary geometry.

Viết lệnh Kích thước giới hạn thao tác¶

Các lệnh ghi chỉ có thể chấp nhận không quá 1000 thao tác. Các thao tác Bulk() trong mongo shell và các phương thức có thể so sánh được trong .

Lượt xem¶

Ngoài việc chỉ đọc, các dạng xem có các hạn chế hoạt động sau

  • Bạn không thể đổi tên chế độ xem
  • find() trên dạng xem không hỗ trợ các toán tử phép chiếu sau.
    • $
    • $elemMatch
    • $lát
    • $meta
  • Chế độ xem không hỗ trợ tìm kiếm văn bản
  • Chế độ xem không hỗ trợ các thao tác thu nhỏ bản đồ
  • Chế độ xem không hỗ trợ hoạt động GeoNear (i. e. geoNear lệnh và $geoNear giai đoạn đường ống)

←   Thông số máy chủ MongoDB Giải thích kết quả  →

© MongoDB, Inc 2008-2017. MongoDB, Mongo và logo chiếc lá là các nhãn hiệu đã đăng ký của MongoDB, Inc

Tổng kích thước chỉ mục trong MongoDB là gì?

Một bộ sưu tập không được có nhiều hơn 64 chỉ mục . Độ dài của tên chỉ mục không thể dài hơn 125 ký tự. Một chỉ mục phức hợp có thể có tối đa 31 trường được lập chỉ mục.

Giới hạn khóa của chỉ mục MongoDB là gì?

indexMaxNumGeneratedKeysPerDocument giới hạn số lượng khóa tối đa được tạo cho một tài liệu để tránh lỗi hết bộ nhớ. Giá trị mặc định là 100000 khóa chỉ mục cho mỗi tài liệu .

MongoDB chọn chỉ mục như thế nào?

MongoDB sử dụng các chỉ mục đa khóa để lập chỉ mục nội dung được lưu trữ trong các mảng. Nếu bạn lập chỉ mục cho một trường chứa giá trị mảng, MongoDB sẽ tạo các mục nhập chỉ mục riêng cho mọi phần tử của mảng. Các chỉ mục đa khóa này cho phép các truy vấn chọn tài liệu có chứa mảng bằng cách so khớp trên phần tử hoặc các phần tử của mảng.

Chỉ mục văn bản trong MongoDB là gì?

MongoDB cung cấp chỉ mục văn bản để hỗ trợ truy vấn tìm kiếm văn bản trên nội dung chuỗi . Chỉ mục văn bản có thể bao gồm bất kỳ trường nào có giá trị là một chuỗi hoặc một mảng các phần tử chuỗi. Một bộ sưu tập chỉ có thể có một chỉ mục tìm kiếm văn bản, nhưng chỉ mục đó có thể bao gồm nhiều trường.