Hướng dẫn how do you create an index on a column in mongodb? - làm thế nào để bạn tạo một chỉ mục trên một cột trong mongodb?

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

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
3
Hướng dẫn how do you create an index on a column in mongodb? - làm thế nào để bạn tạo một chỉ mục trên một cột trong mongodb?

Quan trọng

Phương pháp Mongosh

Trang này ghi lại một phương thức

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
4. Đây không phải là tài liệu cho các lệnh cơ sở dữ liệu hoặc trình điều khiển dành riêng cho ngôn ngữ, chẳng hạn như Node.js.
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
4
method. This is not the documentation for database commands or language-specific drivers, such as Node.js.

Đối với lệnh cơ sở dữ liệu, xem lệnh

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
5.

Đối với trình điều khiển API MongoDB, hãy tham khảo tài liệu trình điều khiển MongoDB dành riêng cho ngôn ngữ.MongoDB driver documentation.

Đối với tài liệu Shell Legacy

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
6, hãy tham khảo tài liệu để phát hành máy chủ MongoDB tương ứng:

  • Mongo Shell v4.4

  • Mongo Shell v4.2

Tạo chỉ mục trên các bộ sưu tập.

Để giảm thiểu tác động của việc xây dựng một chỉ mục trên các bộ bản sao và các cụm được che phủ, hãy sử dụng quy trình xây dựng chỉ số cuộn như được mô tả trên các bản dựng chỉ số cuộn trên các bộ bản sao.

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
7 lấy các tham số sau: takes the following parameters:

Tham số

Loại hình

Sự mô tả

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
8

tài liệu

Một tài liệu chứa các cặp trường và giá trị trong đó trường là khóa chỉ mục và giá trị mô tả loại chỉ mục cho trường đó. Đối với một chỉ mục tăng dần trên một trường, chỉ định giá trị của

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
9; Đối với chỉ số giảm dần, chỉ định giá trị

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

0. Dấu hoa thị (

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

1) không phải là tên chỉ mục hợp lệ.

MongoDB hỗ trợ một số loại chỉ số khác nhau bao gồm các chỉ mục văn bản, không gian địa lý và băm. Xem các loại chỉ mục để biết thêm thông tin.

Đã thay đổi trong phiên bản 4.2: MongoDB 4.2 Các chỉ mục ký tự đại diện hỗ trợ khối lượng công việc trong đó người dùng truy vấn chống lại các trường tùy chỉnh hoặc nhiều trường lớn trong một bộ sưu tập:

  • Để tạo chỉ mục ký tự đại diện trên tất cả các trường và trường con trong tài liệu, hãy chỉ định

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    2 làm khóa chỉ mục. Bạn không thể chỉ định khóa chỉ mục giảm dần khi tạo chỉ mục ký tự đại diện.

    Bạn cũng có thể bao gồm hoặc loại trừ các trường cụ thể và các trường con của chúng khỏi chỉ mục bằng tham số

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    3 tùy chọn.

    Các chỉ mục WildCard bỏ qua trường

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    4 theo mặc định. Để bao gồm trường

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    4 trong chỉ số ký tự đại diện, bạn phải đưa nó vào tài liệu

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    3 một cách rõ ràng:

    {
    "wildcardProjection" : {
    "_id" : 1,
    "" : 0|1
    }
    }

    Ngoại trừ rõ ràng bao gồm trường

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    4, bạn không thể kết hợp các câu lệnh bao gồm và loại trừ trong tài liệu

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    3.

  • Bạn có thể tạo một chỉ mục ký tự đại diện trên một trường cụ thể và các đường dẫn phụ của nó bằng cách chỉ định đường dẫn đầy đủ đến trường đó làm khóa chỉ mục và nối

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    9 vào đường dẫn:

    db.myColl.find( { category: "cafe" } ).collation( { locale: "fr" } )

    0

    Bạn không thể chỉ định khóa chỉ mục giảm dần khi tạo chỉ mục ký tự đại diện.

    Cú pháp chỉ số ký tự đại diện cụ thể của đường dẫn không tương thích với tùy chọn

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    3. Bạn không thể chỉ định các vùi bổ sung hoặc loại trừ trên đường dẫn được chỉ định.

Khóa chỉ số ký tự đại diện phải sử dụng một trong các cú pháp được liệt kê ở trên. Ví dụ: bạn không thể chỉ định khóa chỉ mục ghép. Để biết thêm tài liệu đầy đủ hơn về các chỉ mục ký tự đại diện, bao gồm các hạn chế về việc tạo của chúng, hãy xem các hạn chế chỉ số ký tự đại diện.must use one of the syntaxes listed above. For example, you cannot specify a compound index key. For more complete documentation on wildcard indexes, including restrictions on their creation, see Wildcard Index Restrictions.

db.myColl.find( { category: "cafe" } ).collation( { locale: "fr" } )

2 featureCompitionVersion phải là

db.myColl.find( { category: "cafe" } ).collation( { locale: "fr" } )

3 để tạo các chỉ mục ký tự đại diện. Để biết hướng dẫn về việc thiết lập FCV, hãy xem Phiên bản tương thích tính năng trên triển khai MongoDB 6.0.

Để biết các ví dụ về tạo chỉ số ký tự đại diện, hãy xem Tạo một chỉ số ký tự đại diện.Create a Wildcard Index.

db.myColl.find( { category: "cafe" } ).collation( { locale: "fr" } )

4

tài liệu

Một tài liệu chứa các cặp trường và giá trị trong đó trường là khóa chỉ mục và giá trị mô tả loại chỉ mục cho trường đó. Đối với một chỉ mục tăng dần trên một trường, chỉ định giá trị của

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
9; Đối với chỉ số giảm dần, chỉ định giá trị

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

0. Dấu hoa thị (

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

1) không phải là tên chỉ mục hợp lệ.Options for details.

MongoDB hỗ trợ một số loại chỉ số khác nhau bao gồm các chỉ mục văn bản, không gian địa lý và băm. Xem các loại chỉ mục để biết thêm thông tin.

Đã thay đổi trong phiên bản 4.2: MongoDB 4.2 Các chỉ mục ký tự đại diện hỗ trợ khối lượng công việc trong đó người dùng truy vấn chống lại các trường tùy chỉnh hoặc nhiều trường lớn trong một bộ sưu tập:

Để tạo chỉ mục ký tự đại diện trên tất cả các trường và trường con trong tài liệu, hãy chỉ định

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

2 làm khóa chỉ mục. Bạn không thể chỉ định khóa chỉ mục giảm dần khi tạo chỉ mục ký tự đại diện.

Bạn cũng có thể bao gồm hoặc loại trừ các trường cụ thể và các trường con của chúng khỏi chỉ mục bằng tham số

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

3 tùy chọn.

  • Các chỉ mục WildCard bỏ qua trường

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    4 theo mặc định. Để bao gồm trường

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    4 trong chỉ số ký tự đại diện, bạn phải đưa nó vào tài liệu

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    3 một cách rõ ràng:

  • Ngoại trừ rõ ràng bao gồm trường

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    4, bạn không thể kết hợp các câu lệnh bao gồm và loại trừ trong tài liệu

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    3.

  • Bạn có thể tạo một chỉ mục ký tự đại diện trên một trường cụ thể và các đường dẫn phụ của nó bằng cách chỉ định đường dẫn đầy đủ đến trường đó làm khóa chỉ mục và nối

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    9 vào đường dẫn:

  • Bạn không thể chỉ định khóa chỉ mục giảm dần khi tạo chỉ mục ký tự đại diện.

  • Cú pháp chỉ số ký tự đại diện cụ thể của đường dẫn không tương thích với tùy chọn

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    3. Bạn không thể chỉ định các vùi bổ sung hoặc loại trừ trên đường dẫn được chỉ định.

Khóa chỉ số ký tự đại diện phải sử dụng một trong các cú pháp được liệt kê ở trên. Ví dụ: bạn không thể chỉ định khóa chỉ mục ghép. Để biết thêm tài liệu đầy đủ hơn về các chỉ mục ký tự đại diện, bao gồm các hạn chế về việc tạo của chúng, hãy xem các hạn chế chỉ số ký tự đại diện.

db.myColl.find( { category: "cafe" } ).collation( { locale: "fr" } )

2 featureCompitionVersion phải là

db.myColl.find( { category: "cafe" } ).collation( { locale: "fr" } )

3 để tạo các chỉ mục ký tự đại diện. Để biết hướng dẫn về việc thiết lập FCV, hãy xem Phiên bản tương thích tính năng trên triển khai MongoDB 6.0.

Để biết các ví dụ về tạo chỉ số ký tự đại diện, hãy xem Tạo một chỉ số ký tự đại diện.

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
7 operation will fail.

Không bắt buộc. Một tài liệu chứa một tập hợp các tùy chọn kiểm soát việc tạo chỉ mục. Xem các tùy chọn để biết chi tiết.

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
7 operation:

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)

cam kết

số nguyên hoặc chuỗi

Tham số

Loại hình

Sự mô tả

db.myColl.find( { category: "cafe" } )

8

boolean

Không bắt buộc. Tạo một chỉ mục duy nhất để bộ sưu tập sẽ không chấp nhận chèn hoặc cập nhật các tài liệu trong đó giá trị khóa chỉ mục phù hợp với giá trị hiện có trong chỉ mục.

Chỉ định

db.myColl.find( { category: "cafe" } )

9 để tạo một chỉ mục duy nhất. Giá trị mặc định là
db.myColl.createIndex(
{ score: 1, price: 1, category: 1 },
{ collation: { locale: "fr" } } )
0.

Tùy chọn không có sẵn cho các chỉ mục băm.

db.myColl.createIndex(
{ score: 1, price: 1, category: 1 },
{ collation: { locale: "fr" } } )
1

sợi dây

Không bắt buộc. Tên của chỉ mục. Nếu không xác định, MongoDB sẽ tạo ra một tên chỉ mục bằng cách nối tên của các trường được lập chỉ mục và thứ tự sắp xếp.

db.myColl.createIndex(
{ score: 1, price: 1, category: 1 },
{ collation: { locale: "fr" } } )
2

tài liệu

Không bắt buộc. Nếu được chỉ định, chỉ mục chỉ tham chiếu các tài liệu phù hợp với biểu thức bộ lọc. Xem các chỉ mục một phần để biết thêm thông tin.

Một biểu thức bộ lọc có thể bao gồm:

  • Biểu thức bình đẳng (tức là

    db.myColl.createIndex(
    { score: 1, price: 1, category: 1 },
    { collation: { locale: "fr" } } )
    3 hoặc sử dụng toán tử
    db.myColl.createIndex(
    { score: 1, price: 1, category: 1 },
    { collation: { locale: "fr" } } )
    4),

  • db.myColl.createIndex(
    { score: 1, price: 1, category: 1 },
    { collation: { locale: "fr" } } )
    5 Biểu thức,

  • db.myColl.createIndex(
    { score: 1, price: 1, category: 1 },
    { collation: { locale: "fr" } } )
    6,
    db.myColl.createIndex(
    { score: 1, price: 1, category: 1 },
    { collation: { locale: "fr" } } )
    7,
    db.myColl.createIndex(
    { score: 1, price: 1, category: 1 },
    { collation: { locale: "fr" } } )
    8,
    db.myColl.createIndex(
    { score: 1, price: 1, category: 1 },
    { collation: { locale: "fr" } } )
    9 Biểu thức,

  • db.myColl.find( { score: 5 } ).sort( { price: 1 } )
    db.myColl.find( { score: 5, price: { $gt: NumberDecimal( "10" ) } } ).sort( { price: 1 } )
    0 Biểu thức,

  • Nhà điều hành

    db.myColl.find( { score: 5 } ).sort( { price: 1 } )
    db.myColl.find( { score: 5, price: { $gt: NumberDecimal( "10" ) } } ).sort( { price: 1 } )
    1,

  • Nhà điều hành

    db.myColl.find( { score: 5 } ).sort( { price: 1 } )
    db.myColl.find( { score: 5, price: { $gt: NumberDecimal( "10" ) } } ).sort( { price: 1 } )
    2,

  • Nhà điều hành

    db.myColl.find( { score: 5 } ).sort( { price: 1 } )
    db.myColl.find( { score: 5, price: { $gt: NumberDecimal( "10" ) } } ).sort( { price: 1 } )
    3

Bạn có thể chỉ định tùy chọn

db.myColl.createIndex(
{ score: 1, price: 1, category: 1 },
{ collation: { locale: "fr" } } )
2 cho tất cả các loại chỉ mục MongoDB.

db.myColl.find( { score: 5 } ).sort( { price: 1 } )
db.myColl.find( { score: 5, price: { $gt: NumberDecimal( "10" ) } } ).sort( { price: 1 } )
5

boolean

Không bắt buộc. Nếu

db.myColl.find( { category: "cafe" } )

9, chỉ mục chỉ tham chiếu các tài liệu với trường được chỉ định. Các chỉ mục này sử dụng ít không gian hơn nhưng hoạt động khác nhau trong một số tình huống (đặc biệt là các loại). Giá trị mặc định là
db.myColl.createIndex(
{ score: 1, price: 1, category: 1 },
{ collation: { locale: "fr" } } )
0. Xem các chỉ mục thưa thớt để biết thêm thông tin.

Các loại chỉ mục sau đây thưa thớt theo mặc định và bỏ qua tùy chọn này:

  • 2dsphere

  • 2d

  • Geohaystack

  • chữ

Đối với một chỉ số ghép bao gồm (các) khóa chỉ số

db.myColl.find( { score: 5 } ).sort( { price: 1 } )
db.myColl.find( { score: 5, price: { $gt: NumberDecimal( "10" ) } } ).sort( { price: 1 } )
8 cùng với các khóa của các loại khác, chỉ các trường chỉ mục
db.myColl.find( { score: 5 } ).sort( { price: 1 } )
db.myColl.find( { score: 5, price: { $gt: NumberDecimal( "10" ) } } ).sort( { price: 1 } )
8 xác định xem chỉ mục có tham chiếu tài liệu hay không.

Mẹo

Các chỉ mục một phần cung cấp một siêu chất của chức năng của các chỉ mục thưa thớt. Trừ khi ứng dụng của bạn có một yêu cầu cụ thể, hãy sử dụng các chỉ mục một phần thay vì các chỉ mục thưa thớt.

db.myColl.find( { score: 5, category: "cafe" } )

0

Số nguyên

Không bắt buộc. Chỉ định một giá trị, trong vài giây, là một TTL để kiểm soát thời gian MongoDB giữ lại các tài liệu trong bộ sưu tập này. Xem Dữ liệu hết hạn từ các bộ sưu tập bằng cách đặt TTL để biết thêm thông tin về chức năng này. Điều này chỉ áp dụng cho các chỉ mục TTL.

ẩn giấu

boolean

Không bắt buộc. Một lá cờ xác định liệu chỉ mục có bị ẩn khỏi trình lập kế hoạch truy vấn hay không. Một chỉ số ẩn không được đánh giá là một phần của lựa chọn kế hoạch truy vấn.

Mặc định là

db.myColl.createIndex(
{ score: 1, price: 1, category: 1 },
{ collation: { locale: "fr" } } )
0.

Để sử dụng tùy chọn

db.myColl.find( { score: 5, category: "cafe" } )

2, bạn phải có FeatureCompitionVersion được đặt thành

db.myColl.find( { score: 5, category: "cafe" } )

3 hoặc lớn hơn. Tuy nhiên, một khi bị ẩn, chỉ số vẫn được ẩn ngay cả với featureCompitionVersion được đặt thành

db.myColl.find( { category: "cafe" } ).collation( { locale: "fr" } )

3 trên các nhị phân MongoDB 4.4.

Mới trong phiên bản 4.4.

db.myColl.find( { score: 5, category: "cafe" } )

5

tài liệu

Không bắt buộc. Nếu được chỉ định, chỉ mục chỉ tham chiếu các tài liệu phù hợp với biểu thức bộ lọc. Xem các chỉ mục một phần để biết thêm thông tin.

Một biểu thức bộ lọc có thể bao gồm:

storageEngine: { : }

Biểu thức bình đẳng (tức là

db.myColl.createIndex(
{ score: 1, price: 1, category: 1 },
{ collation: { locale: "fr" } } )
3 hoặc sử dụng toán tử
db.myColl.createIndex(
{ score: 1, price: 1, category: 1 },
{ collation: { locale: "fr" } } )
4),

Tham số

Loại hình

Sự mô tả

db.myColl.find( { score: 5, category: "cafe" } )

7

tài liệu

Không bắt buộc. Chỉ định đối chiếu cho chỉ số.

Đối chiếu cho phép người dùng chỉ định các quy tắc cụ thể về ngôn ngữ để so sánh chuỗi, chẳng hạn như các quy tắc cho Lettercase và Dấu nhấn.

Nếu bạn đã chỉ định một đối chiếu ở cấp độ thu thập, thì:

  • Nếu bạn không chỉ định một đối chiếu khi tạo chỉ mục, MongoDB sẽ tạo chỉ mục với đối chiếu mặc định của bộ sưu tập.

  • Nếu bạn chỉ định một đối chiếu khi tạo chỉ mục, MongoDB sẽ tạo chỉ mục với đối chiếu được chỉ định.

Tùy chọn đối chiếu có cú pháp sau:

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}

Khi chỉ định đối chiếu, trường

db.myColl.find( { score: 5, category: "cafe" } )

8 là bắt buộc; Tất cả các trường đối chiếu khác là tùy chọn. Để biết mô tả của các trường, xem tài liệu đối chiếu.

Các chỉ mục sau đây chỉ hỗ trợ so sánh nhị phân đơn giản và không hỗ trợ đối chiếu:

  • chỉ mục văn bản,

  • Chỉ số 2D và

  • GEOHAYSTACK INDEXES.

Mẹo

Để tạo một chỉ mục

db.myColl.find( { score: 5, category: "cafe" } )

9,
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
00 hoặc
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
01 trên bộ sưu tập có đối chiếu không đơn giản, bạn phải chỉ định rõ ràng
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
02 khi tạo chỉ mục.

Nếu bạn đã chỉ định một đối chiếu ở cấp độ thu thập, thì:

  • Nếu bạn không chỉ định một đối chiếu khi tạo chỉ mục, MongoDB sẽ tạo chỉ mục với đối chiếu mặc định của bộ sưu tập.

  • Nếu bạn chỉ định một đối chiếu khi tạo chỉ mục, MongoDB sẽ tạo chỉ mục với đối chiếu được chỉ định.

Mẹo

Để tạo một chỉ mục

db.myColl.find( { score: 5, category: "cafe" } )

9,
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
00 hoặc
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
01 trên bộ sưu tập có đối chiếu không đơn giản, bạn phải chỉ định rõ ràng
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
02 khi tạo chỉ mục.

Bằng cách chỉ định một đối chiếu

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
03 của
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
9 hoặc
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
05, bạn có thể tạo một chỉ số không nhạy cảm trường hợp. Chỉ số với một đối chiếu
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
03 của
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
9 đều không nhạy cảm với phụ và trường hợp.

Bạn có thể tạo nhiều chỉ mục trên cùng một khóa với các đối chiếu khác nhau. Để tạo các chỉ mục với cùng một mẫu chính nhưng các đối chiếu khác nhau, bạn phải cung cấp tên chỉ mục duy nhất.

Ví dụ: Bộ sưu tập

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
08 có một chỉ mục trên trường chuỗi
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
09 với locale đối chiếu
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
10.

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

Hoạt động truy vấn sau, chỉ định đối chiếu giống như chỉ mục, có thể sử dụng chỉ mục:

db.myColl.find( { category: "cafe" } ).collation( { locale: "fr" } )

Tuy nhiên, thao tác truy vấn sau, theo mặc định sử dụng bộ ghép nhị phân "đơn giản", không thể sử dụng chỉ mục:

db.myColl.find( { category: "cafe" } )

Đối với một chỉ số ghép trong đó các khóa tiền tố chỉ mục không phải là chuỗi, mảng và tài liệu nhúng, một hoạt động chỉ định một đối chiếu khác vẫn có thể sử dụng chỉ mục để hỗ trợ so sánh trên các phím tiền tố chỉ mục.

Ví dụ: Bộ sưu tập

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
08 có chỉ số hợp chất trên các trường số
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
12 và
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
13 và trường chuỗi
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
09; Chỉ mục được tạo với locale đối chiếu
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
10 để so sánh chuỗi:

db.myColl.createIndex(
{ score: 1, price: 1, category: 1 },
{ collation: { locale: "fr" } } )

Các hoạt động sau, sử dụng đối chiếu nhị phân

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
16 để so sánh chuỗi, có thể sử dụng chỉ mục:

db.myColl.find( { score: 5 } ).sort( { price: 1 } )
db.myColl.find( { score: 5, price: { $gt: NumberDecimal( "10" ) } } ).sort( { price: 1 } )

Hoạt động sau, sử dụng đối chiếu nhị phân

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
16 để so sánh chuỗi trên trường
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
09 được lập chỉ mục, có thể sử dụng chỉ mục để chỉ thực hiện phần
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
19 của truy vấn:

db.myColl.find( { score: 5, category: "cafe" } )

Các tùy chọn sau chỉ có sẵn cho các chỉ mục văn bản:

Tham số

Loại hình

Sự mô tả

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
20

tài liệu

Không bắt buộc. Đối với các chỉ mục văn bản, một tài liệu chứa các cặp trường và trọng lượng. Trọng lượng là một số nguyên dao động từ 1 đến 99.999 và biểu thị tầm quan trọng của trường so với các trường được lập chỉ mục khác về điểm số. Bạn có thể chỉ định trọng số cho một số hoặc tất cả các trường được lập chỉ mục. Xem kết quả tìm kiếm kiểm soát với trọng số để điều chỉnh điểm số. Giá trị mặc định là

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
9.

Bắt đầu từ MongoDB 5.0, tùy chọn trọng số chỉ được phép cho các chỉ mục văn bản.

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
22

sợi dây

Không bắt buộc. Đối với các chỉ mục văn bản, ngôn ngữ xác định danh sách các từ dừng và các quy tắc cho stemmer và tokenizer. Xem ngôn ngữ tìm kiếm văn bản cho các ngôn ngữ có sẵn và chỉ định một ngôn ngữ cho chỉ mục văn bản để biết thêm thông tin và ví dụ. Giá trị mặc định là

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
23.

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
24

sợi dây

Không bắt buộc. Đối với các chỉ mục văn bản, ngôn ngữ xác định danh sách các từ dừng và các quy tắc cho stemmer và tokenizer. Xem ngôn ngữ tìm kiếm văn bản cho các ngôn ngữ có sẵn và chỉ định một ngôn ngữ cho chỉ mục văn bản để biết thêm thông tin và ví dụ. Giá trị mặc định là

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
23.

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
26

Không bắt buộc. Đối với các chỉ mục văn bản, tên của trường, trong các tài liệu của bộ sưu tập, chứa ngôn ngữ ghi đè cho tài liệu. Giá trị mặc định là

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
25. Xem Sử dụng bất kỳ trường nào để chỉ định ngôn ngữ cho một tài liệu cho một ví dụ.

Số nguyên

Không bắt buộc. Số phiên bản chỉ mục

db.myColl.find( { score: 5, category: "cafe" } )

9. Người dùng có thể sử dụng tùy chọn này để ghi đè số phiên bản mặc định.

Chỉ số trong MongoDB là gì? Một chỉ mục trong MongoDB tương tự như cách các chỉ mục hoạt động trong các hệ thống cơ sở dữ liệu khác. Các chỉ mục được áp dụng ở cấp độ thu thập và có thể lưu trữ giá trị của một trường hoặc bộ trường cụ thể, được đặt hàng theo giá trị của trường.

Tùy chọn sau đây chỉ có sẵn cho 2DSphere Indexes:

Tham số

Loại hình

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
28

Số nguyên

Không bắt buộc. Số phiên bản chỉ mục

db.myColl.find( { score: 5 } ).sort( { price: 1 } )
db.myColl.find( { score: 5, price: { $gt: NumberDecimal( "10" ) } } ).sort( { price: 1 } )
8. Người dùng có thể sử dụng tùy chọn này để ghi đè số phiên bản mặc định.

Đối với các phiên bản có sẵn, xem phiên bản.

Các tùy chọn sau chỉ có sẵn cho các chỉ mục 2D:

Tham số

Loại hình

Sự mô tả

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
30

Số nguyên

Không bắt buộc. Đối với các chỉ mục 2D, số lượng độ chính xác của giá trị địa lý được lưu trữ của dữ liệu vị trí.

Giá trị

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
30 dao động từ 1 đến 32 bao gồm. Giá trị mặc định là
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
32.

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
33

con số

Không bắt buộc. Đối với các chỉ mục 2D, ranh giới bao gồm thấp hơn cho các giá trị kinh độ và vĩ độ. Giá trị mặc định là

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
34.

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
35

con số

Không bắt buộc. Đối với các chỉ mục 2D, ranh giới bao gồm thấp hơn cho các giá trị kinh độ và vĩ độ. Giá trị mặc định là

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
34.

Tùy chọn sau đây chỉ có sẵn cho các chỉ mục Geohaystack:

Tham số

Loại hình

Sự mô tả

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
37

con số

Đối với các chỉ mục Geohaystack, chỉ định số lượng đơn vị trong đó nhóm các giá trị vị trí; tức là nhóm trong cùng một nhóm các giá trị vị trí đó nằm trong số lượng đơn vị được chỉ định với nhau.

Giá trị phải lớn hơn 0.

Ghi chú

Bị loại bỏ trong MongoDB 5.0

Chỉ số trong MongoDB là gì? Một chỉ mục trong MongoDB tương tự như cách các chỉ mục hoạt động trong các hệ thống cơ sở dữ liệu khác. Các chỉ mục được áp dụng ở cấp độ thu thập và có thể lưu trữ giá trị của một trường hoặc bộ trường cụ thể, được đặt hàng theo giá trị của trường.

Tùy chọn sau đây chỉ có sẵn cho các chỉ mục ký tự đại diện:

Tham số

Loại hình

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

3

tài liệu

Không bắt buộc. Cho phép người dùng bao gồm hoặc loại trừ các đường dẫn trường cụ thể khỏi chỉ mục ký tự đại diện bằng cách sử dụng mẫu khóa

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
39. Tùy chọn này chỉ hợp lệ nếu tạo chỉ mục ký tự đại diện trên tất cả các trường tài liệu. Bạn không thể chỉ định tùy chọn này nếu tạo chỉ mục ký tự đại diện trên đường dẫn trường cụ thể và các trường con của nó, ví dụ:

db.myColl.find( { category: "cafe" } ).collation( { locale: "fr" } )

0

Tùy chọn

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

3 có biểu mẫu sau:

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
0

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
42 có thể là một trong những điều sau đây:

  • collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    9 hoặc

    db.myColl.find( { category: "cafe" } )

    9 để đưa trường vào chỉ số ký tự đại diện.

  • db.myColl.find( { category: "cafe" } ).collation( { locale: "fr" } )

    7 hoặc
    db.myColl.createIndex(
    { score: 1, price: 1, category: 1 },
    { collation: { locale: "fr" } } )
    0 để loại trừ trường khỏi chỉ số ký tự đại diện.

Các chỉ mục WildCard bỏ qua trường

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

4 theo mặc định. Để bao gồm trường

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

4 trong chỉ số ký tự đại diện, bạn phải đưa nó vào tài liệu

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

3 một cách rõ ràng:

{
"wildcardProjection" : {
"_id" : 1,
"" : 0|1
}
}

Ngoại trừ rõ ràng bao gồm trường

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

4, bạn không thể kết hợp các câu lệnh bao gồm và loại trừ trong tài liệu

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

3.

Đã thay đổi trong phiên bản 4.2.

MongoDB sử dụng một quy trình xây dựng được tối ưu hóa, có được và giữ một khóa độc quyền trên bộ sưu tập được chỉ định ở đầu và cuối của bản dựng chỉ mục. Tất cả các hoạt động tiếp theo trên bộ sưu tập phải đợi cho đến khi

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
52 phát hành khóa độc quyền.
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
52 cho phép các hoạt động đọc và ghi xen kẽ trong phần lớn bản dựng chỉ mục.
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
52
releases the exclusive lock.
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
52
allows interleaving read and write operations during the majority of the index build.

Để biết thêm thông tin về hành vi khóa của

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
52, hãy xem chỉ mục xây dựng trên các bộ sưu tập đông dân cư.
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
52
, see Index Builds on Populated Collections.

Nếu bạn gọi

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
7 cho một chỉ mục đã tồn tại, MongoDB sẽ không tạo lại chỉ mục.
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
7
for an index that already exists, MongoDB does not recreate the index.

Ngoại trừ tùy chọn đối chiếu, nếu bạn tạo một chỉ mục với một bộ tùy chọn chỉ mục và sau đó cố gắng tạo lại cùng một chỉ mục nhưng với các tùy chọn chỉ mục khác nhau, MongoDB sẽ không thay đổi các tùy chọn cũng như tái tạo chỉ mục.collation option, if you create an index with one set of index options and then try to recreate the same index but with different index options, MongoDB will not change the options nor recreate the index.

Tùy chọn ẩn có thể được thay đổi mà không bỏ và tái tạo chỉ mục. Xem tùy chọn ẩn.Hidden Option.

Để thay đổi các tùy chọn chỉ mục khác, hãy bỏ chỉ mục hiện có với

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
56 trước khi chạy
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
7 với các tùy chọn mới.
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
7
with the new options.

Bạn có thể tạo nhiều chỉ mục trên cùng một khóa với các đối chiếu khác nhau. Để tạo các chỉ mục với cùng một mẫu chính nhưng các đối chiếu khác nhau, bạn phải cung cấp tên chỉ mục duy nhất.

Mới trong phiên bản 4.4.

Ghi chú

Để ẩn hoặc bỏ các chỉ mục hiện tại, bạn có thể sử dụng các phương thức

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
4 sau:
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
4
methods:

  • db.collection.createIndex(
    {
    "a": 1
    },
    {
    unique: true,
    sparse: true,
    expireAfterSeconds: 3600
    }
    )
    59

  • db.collection.createIndex(
    {
    "a": 1
    },
    {
    unique: true,
    sparse: true,
    expireAfterSeconds: 3600
    }
    )
    60

Ví dụ,

  • Để thay đổi tùy chọn

    db.myColl.find( { score: 5, category: "cafe" } )

    2 cho một chỉ mục thành

    db.myColl.find( { category: "cafe" } )

    9, hãy sử dụng phương thức
    db.collection.createIndex(
    {
    "a": 1
    },
    {
    unique: true,
    sparse: true,
    expireAfterSeconds: 3600
    }
    )
    59:

    db.collection.createIndex(
    {
    "a": 1
    },
    {
    unique: true,
    sparse: true,
    expireAfterSeconds: 3600
    }
    )
    2

  • Để thay đổi tùy chọn

    db.myColl.find( { score: 5, category: "cafe" } )

    2 cho một chỉ mục thành
    db.myColl.createIndex(
    { score: 1, price: 1, category: 1 },
    { collation: { locale: "fr" } } )
    0, hãy sử dụng phương thức
    db.collection.createIndex(
    {
    "a": 1
    },
    {
    unique: true,
    sparse: true,
    expireAfterSeconds: 3600
    }
    )
    60:

    db.collection.createIndex(
    {
    "a": 1
    },
    {
    unique: true,
    sparse: true,
    expireAfterSeconds: 3600
    }
    )
    3

Mẹo

Xem thêm:

Thay đổi trong phiên bản 4.4.

Bắt đầu từ MongoDB 4.4, bạn có thể tạo các bộ sưu tập và chỉ mục bên trong giao dịch đa tài liệu nếu giao dịch không phải là giao dịch ghi chéo.not a cross-shard write transaction.

Để sử dụng

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
7 trong một giao dịch, giao dịch phải sử dụng Read Mối quan tâm
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
68. Nếu bạn chỉ định mức độ quan tâm đọc khác với
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
68, giao dịch không thành công.
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
7
in a transaction, the transaction must use read concern
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
68. If you specify a read concern level other than
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
68, the transaction fails.

Mẹo

Xem thêm:

Ví dụ sau đây tạo ra một chỉ mục tăng dần trên trường

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
70.

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
4

Nếu tài liệu

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
8 chỉ định nhiều hơn một trường, thì
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
52 sẽ tạo ra một chỉ số ghép.
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
52
creates a compound index.

Ví dụ sau đây tạo ra một chỉ số hợp chất trên trường

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
70 (theo thứ tự tăng dần) và trường
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
74 (theo thứ tự giảm dần.)

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
5

Thay đổi trong phiên bản 4.4: Bắt đầu từ MongoDB 4.4, các chỉ mục ghép có thể bao gồm một trường băm đơn. Các chỉ số băm hợp chất yêu cầu tính năng tương tự featureCompition được đặt thành

db.myColl.find( { score: 5, category: "cafe" } )

3.

Ví dụ sau đây tạo ra một chỉ số hợp chất trên trường

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
76 (theo thứ tự tăng dần) và trường
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
74 (băm):

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
6

Thứ tự của các trường trong một chỉ số hợp chất rất quan trọng để hỗ trợ các hoạt động

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
78 bằng cách sử dụng chỉ mục.

Mẹo

Ví dụ sau đây tạo ra một chỉ mục có tên

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
79. Ví dụ tạo ra chỉ mục với đối chiếu chỉ định địa phương
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
80 và cường độ so sánh
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
05:collation that specifies the locale
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
80 and comparison strength
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
05:

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
7

Ví dụ sau đây tạo ra một chỉ số hợp chất có tên

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
82 với một sự đối chiếu. Bộ đối chiếu chỉ áp dụng cho các phím chỉ mục với các giá trị chuỗi.collation. The collation applies only to the index keys with string values.

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
8

Bộ đối chiếu áp dụng cho các khóa được lập chỉ mục có giá trị là chuỗi.

Đối với các truy vấn hoặc hoạt động sắp xếp trên các khóa được lập chỉ mục sử dụng các quy tắc đối chiếu tương tự, MongoDB có thể sử dụng chỉ mục. Để biết chi tiết, xem đối chiếu và sử dụng chỉ mục.Collation and Index Use.

Mới trong phiên bản 4.2.

db.myColl.find( { category: "cafe" } ).collation( { locale: "fr" } )

2 featureCompitionVersion phải là

db.myColl.find( { category: "cafe" } ).collation( { locale: "fr" } )

3 để tạo các chỉ mục ký tự đại diện. Để biết hướng dẫn về việc thiết lập FCV, hãy xem Phiên bản tương thích tính năng trên triển khai MongoDB 6.0.

  • Các chỉ mục WildCard bỏ qua trường

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    4 theo mặc định. Để bao gồm trường

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    4 trong chỉ số ký tự đại diện, bạn phải đưa nó vào tài liệu

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    3 một cách rõ ràng:

    {
    "wildcardProjection" : {
    "_id" : 1,
    "" : 0|1
    }
    }

    Ngoại trừ rõ ràng bao gồm trường

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    4, bạn không thể kết hợp các câu lệnh bao gồm và loại trừ trong tài liệu

    db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

    3.

  • Các chỉ mục WildCard không hỗ trợ các loại chỉ mục hoặc thuộc tính sau:

    • Hợp chất

    • TTL

    • Chữ

    • 2D (không gian địa lý)

    • 2dsphere (không gian địa lý)

    • Băm

    • Độc nhất

    Ghi chú

    Các chỉ số ký tự đại diện khác với và không tương thích với các chỉ mục văn bản ký tự đại diện. Các chỉ mục ký tự đại diện không thể hỗ trợ các truy vấn bằng toán tử

    db.collection.createIndex(
    {
    "a": 1
    },
    {
    unique: true,
    sparse: true,
    expireAfterSeconds: 3600
    }
    )
    90.

    Để biết tài liệu đầy đủ về các hạn chế chỉ số ký tự đại diện, xem các hạn chế chỉ số ký tự đại diện.

Để biết tài liệu đầy đủ về các chỉ mục ký tự đại diện, xem các chỉ mục ký tự đại diện.

Các ví dụ liệt kê sau đây về việc tạo chỉ số ký tự đại diện:

  • Tạo chỉ mục ký tự đại diện trên một đường dẫn trường duy nhất

  • Tạo một chỉ mục ký tự đại diện trên tất cả các đường dẫn trường

  • Bao gồm các trường cụ thể trong phạm vi bảo hiểm chỉ số ký tự đại diện

  • Bỏ qua các trường cụ thể từ phạm vi bảo hiểm chỉ số ký tự đại diện

Hãy xem xét một bộ sưu tập

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
91 trong đó các tài liệu có thể chứa trường
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
92. Trường
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
92 có thể chứa các trường lồng nhau tùy ý, bao gồm các tài liệu và mảng nhúng:

storageEngine: { : }

0

Hoạt động sau đây tạo ra một chỉ mục ký tự đại diện trên trường

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
92:

storageEngine: { : }

1

Với chỉ số ký tự đại diện này, MongoDB chỉ số tất cả các giá trị vô hướng của

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
92. Nếu trường là một tài liệu hoặc mảng lồng nhau, chỉ số ký tự đại diện được đặt vào tài liệu/mảng và chỉ mục tất cả các trường vô hướng trong tài liệu/mảng.

Chỉ số ký tự đại diện có thể hỗ trợ các truy vấn trường đơn tùy ý trên

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
92 hoặc một trong các trường lồng nhau của nó:

storageEngine: { : }

2

Ghi chú

Cú pháp chỉ số ký tự đại diện cụ thể của đường dẫn không tương thích với tùy chọn

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

3. Xem tài liệu tham số để biết thêm thông tin.parameter documentation for more information.

Hãy xem xét một bộ sưu tập

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
91 trong đó các tài liệu có thể chứa trường
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
92. Trường
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
92 có thể chứa các trường lồng nhau tùy ý, bao gồm các tài liệu và mảng nhúng:

Hoạt động sau đây tạo ra một chỉ mục ký tự đại diện trên trường

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
92:

Với chỉ số ký tự đại diện này, MongoDB chỉ số tất cả các giá trị vô hướng của

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
92. Nếu trường là một tài liệu hoặc mảng lồng nhau, chỉ số ký tự đại diện được đặt vào tài liệu/mảng và chỉ mục tất cả các trường vô hướng trong tài liệu/mảng.

storageEngine: { : }

4

Chỉ số ký tự đại diện có thể hỗ trợ các truy vấn trường đơn tùy ý trên

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
92 hoặc một trong các trường lồng nhau của nó:

Ghi chú

Cú pháp chỉ số ký tự đại diện cụ thể của đường dẫn không tương thích với tùy chọn

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

3. Xem tài liệu tham số để biết thêm thông tin.

Ghi chú

Cú pháp chỉ số ký tự đại diện cụ thể của đường dẫn không tương thích với tùy chọn

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

3. Xem tài liệu tham số để biết thêm thông tin.parameter documentation for more information.

Hãy xem xét một bộ sưu tập

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
91 trong đó các tài liệu có thể chứa trường
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
92. Trường
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
92 có thể chứa các trường lồng nhau tùy ý, bao gồm các tài liệu và mảng nhúng:

storageEngine: { : }

0

storageEngine: { : }

0

storageEngine: { : }

7

Hoạt động sau đây tạo ra một chỉ mục ký tự đại diện trên tất cả các trường vô hướng (không bao gồm trường

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

4):Options for

storageEngine: { : }

14 indexes.

Với chỉ số ký tự đại diện này, MongoDB chỉ mục tất cả các trường vô hướng cho mỗi tài liệu trong bộ sưu tập. Nếu một trường nhất định là một tài liệu hoặc mảng lồng nhau, chỉ số ký tự đại diện sẽ tái phát vào tài liệu/mảng và chỉ mục tất cả các trường vô hướng trong tài liệu/mảng.

Chỉ mục được tạo có thể hỗ trợ các truy vấn trên bất kỳ trường tùy ý nào trong các tài liệu trong bộ sưu tập:

storageEngine: { : }

8

Ghi chú

Cú pháp chỉ số ký tự đại diện cụ thể của đường dẫn không tương thích với tùy chọn

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

3. Xem tài liệu tham số để biết thêm thông tin.parameter documentation.

Hãy xem xét một bộ sưu tập

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
91 trong đó các tài liệu có thể chứa trường
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
92. Trường
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
92 có thể chứa các trường lồng nhau tùy ý, bao gồm các tài liệu và mảng nhúng:

storageEngine: { : }

0

storageEngine: { : }

0

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
0

Hoạt động sau đây tạo ra một chỉ mục ký tự đại diện trên tất cả các trường vô hướng (không bao gồm trường

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

4):Options for

storageEngine: { : }

14 indexes.

Với chỉ số ký tự đại diện này, MongoDB chỉ mục tất cả các trường vô hướng cho mỗi tài liệu trong bộ sưu tập. Nếu một trường nhất định là một tài liệu hoặc mảng lồng nhau, chỉ số ký tự đại diện sẽ tái phát vào tài liệu/mảng và chỉ mục tất cả các trường vô hướng trong tài liệu/mảng.

Chỉ mục được tạo có thể hỗ trợ các truy vấn trên bất kỳ trường tùy ý nào trong các tài liệu trong bộ sưu tập:except those excluded by

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

3:

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
1

Ghi chú

Cú pháp chỉ số ký tự đại diện cụ thể của đường dẫn không tương thích với tùy chọn

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

3. Xem tài liệu tham số để biết thêm thông tin.parameter documentation.

Ghi chú

Cú pháp chỉ số ký tự đại diện cụ thể của đường dẫn không tương thích với tùy chọn db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )3. Xem tài liệu tham số để biết thêm thông tin.

storageEngine: { : }

0

Hoạt động sau đây tạo ra một chỉ mục ký tự đại diện trên tất cả các trường vô hướng (không bao gồm trường

db.myColl.createIndex( { category: 1 }, { collation: { locale: "fr" } } )

4):

Với chỉ số ký tự đại diện này, MongoDB chỉ mục tất cả các trường vô hướng cho mỗi tài liệu trong bộ sưu tập. Nếu một trường nhất định là một tài liệu hoặc mảng lồng nhau, chỉ số ký tự đại diện sẽ tái phát vào tài liệu/mảng và chỉ mục tất cả các trường vô hướng trong tài liệu/mảng.

Chỉ định tham số cam kết cho hoạt động

db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
52 để đặt số lượng thành viên bỏ phiếu chịu dữ liệu tối thiểu (tức là đại biểu cam kết), bao gồm cả chính, phải hoàn thành bản dựng chỉ mục trước khi đánh dấu các chỉ mục là sẵn sàng. Quorum cam kết mặc định là

storageEngine: { : }

38 hoặc tất cả các thành viên đặt bản sao biểu quyết mang dữ liệu.commitQuorum parameter to the
db.collection.createIndex(
{
"a": 1
},
{
unique: true,
sparse: true,
expireAfterSeconds: 3600
}
)
52
operation to set the minimum number of data-bearing voting members (i.e commit quorum), including the primary, which must complete the index build before the primary marks the indexes as ready. The default commit quorum is

storageEngine: { : }

38, or all data-bearing voting replica set members.

Hoạt động sau đây tạo ra một chỉ mục với đại biểu cam kết là

db.myColl.find( { category: "cafe" } ).collation( { locale: "fr" } )

9 hoặc phần lớn các thành viên bỏ phiếu chịu dữ liệu:commit quorum of

db.myColl.find( { category: "cafe" } ).collation( { locale: "fr" } )

9, or a simple majority of data-bearing voting members:

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
2

Chỉ số đánh dấu chính được xây dựng chỉ sẵn sàng sau phần lớn các thành viên bỏ phiếu chịu dữ liệu "bỏ phiếu" để thực hiện xây dựng chỉ số. Để biết thêm thông tin về xây dựng chỉ mục và quy trình bỏ phiếu, hãy xem các bản dựng chỉ mục trong môi trường được nhân rộng.

  • Phần chỉ mục của hướng dẫn này để tài liệu đầy đủ về các chỉ mục và lập chỉ mục trong MongoDB.

  • storageEngine: { : }

    40 để xem các thông số kỹ thuật của các chỉ mục hiện có cho một bộ sưu tập.

  • Chỉ mục văn bản để biết chi tiết về việc tạo chỉ mục

    db.myColl.find( { score: 5, category: "cafe" } )

    9.

  • Chỉ số không gian địa chỉ cho các truy vấn không gian địa lý.

  • TTL chỉ mục để hết hạn dữ liệu.

Chúng ta có thể tạo các chỉ mục trong MongoDB không?

Nếu bạn không chỉ định một đối chiếu khi tạo chỉ mục, MongoDB sẽ tạo chỉ mục với đối chiếu mặc định của bộ sưu tập. Nếu bạn chỉ định một đối chiếu khi tạo chỉ mục, MongoDB sẽ tạo chỉ mục với đối chiếu được chỉ định.. If you do specify a collation when creating the index, MongoDB creates the index with the specified collation.

Cú pháp chính xác để tạo chỉ mục trong MongoDB là gì?

Cú pháp. Phương thức cú pháp cơ bản của phương thức createdIndex () như sau (). Dưới đây là tên của trường mà bạn muốn tạo chỉ mục và 1 là cho thứ tự tăng dần. Để tạo chỉ mục theo thứ tự giảm dần, bạn cần sử dụng -1.createIndex() method is as follows(). Here key is the name of the field on which you want to create index and 1 is for ascending order. To create index in descending order you need to use -1.

Làm thế nào được lập chỉ mục được thực hiện trong MongoDB?

MongoDB sử dụng các chỉ mục MultiKey để 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 một trường chứa giá trị mảng, MongoDB sẽ tạo các mục chỉ mục riêng cho mọi phần tử của mảng. Các chỉ mục đa năng này cho phép các truy vấn chọn các tài liệu có chứa mảng bằng cách khớp trên phần tử hoặc các phần tử của mảng.uses multikey indexes to index the content stored in arrays. If you index a field that holds an array value, MongoDB creates separate index entries for every element of the array. These multikey indexes allow queries to select documents that contain arrays by matching on element or elements of the arrays.

Bạn có thể tạo một chỉ mục trên một trường mảng trong MongoDB không?

Để lập chỉ mục một trường chứa một giá trị mảng, MongoDB sẽ tạo một khóa chỉ mục cho mỗi phần tử trong mảng. Các chỉ mục đa năng này hỗ trợ các truy vấn hiệu quả đối với các trường mảng. Các chỉ mục đa năng có thể được xây dựng trên các mảng chứa cả hai giá trị vô hướng [1] (ví dụ: chuỗi, số) và tài liệu lồng nhau.MongoDB creates an index key for each element in the array. These multikey indexes support efficient queries against array fields. Multikey indexes can be constructed over arrays that hold both scalar values [1] (e.g. strings, numbers) and nested documents.

Điều nào sau đây được sử dụng để tạo chỉ mục trong MongoDB?

Các chỉ mục được đặt hàng theo giá trị của trường được chỉ định trong chỉ mục.Vì vậy, MongoDB cung cấp một phương thức createdIndex () để tạo một hoặc nhiều chỉ mục trên các bộ sưu tập.Sử dụng phương pháp này, chúng ta có thể tạo các loại chỉ mục khác nhau như chỉ mục văn bản, chỉ mục 2DSPHERE, chỉ mục 2D, v.v.

Chỉ số trong MongoDB giải thích với ví dụ là gì?

Chỉ số trong MongoDB là gì?Một chỉ mục trong MongoDB tương tự như cách các chỉ mục hoạt động trong các hệ thống cơ sở dữ liệu khác.Các chỉ mục được áp dụng ở cấp độ thu thập và có thể lưu trữ giá trị của một trường hoặc bộ trường cụ thể, được đặt hàng theo giá trị của trường.