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

MongoDB - diễn giải đầu ra giải thích cụ thể

Đầu ra ở đó là đặc biệt cho một regex không bị ràng buộc với vị trí bắt đầu của chuỗi. Vì vậy, đối với một regex sẽ quét chỉ mục chứ không phải bộ sưu tập (mặc dù nó sẽ quét toàn bộ chỉ mục trong trường hợp này), cần phải có một tập hợp các giới hạn bắt đầu và giới hạn kết thúc:

Hãy xem xét truy vấn đầu tiên với một regex khác:

db.collection.find({ "username": /bob/ }).explain()

    "indexBounds" : {
            "username" : [
                    [
                            "",
                            {

                            }
                    ],
                    [
                            /bob/,
                            /bob/
                    ]
            ]
    },

Vì vậy, điều đó có nghĩa là có toàn bộ chuỗi để tìm kiếm và sau đó kết quả phù hợp sẽ kết thúc trên thứ có chứa "bob" như một phần của chuỗi. Vì vậy, phần đầu tiên là giới hạn đối sánh "từ vựng" và phần thứ hai là giới hạn thực tế sẽ được áp dụng:

Truy vấn sau đây cho thấy điều này rõ ràng hơn:

db.collection.find({ username: /^bob/ }).explain()

    "indexBounds" : {
            "username" : [
                    [
                            "bob",
                            "boc"
                    ],
                    [
                            /^bob/,
                            /^bob/
                    ]
            ]
    },

Vì điều đó được neo vào đầu chuỗi, các mục nhập duy nhất của chỉ mục cần được kiểm tra khớp "từ vựng" giữa "bob" và "boc". Regex lại được chứa dưới dạng phần thứ hai của giới hạn.

Các mục nhập giới hạn thường được mô tả là các phần tử "hai phần" trong nội bộ và có trường hợp này đối với các biểu thức chính quy, trong phần đầu tiên có các giới hạn chuỗi có ý nghĩa đối với việc đối sánh chỉ mục và sau đó đối với regex để áp dụng cho các đối tượng khớp đó yêu cầu.

Lưu ý cuối cùng, hãy xem phần sau:

db.collection.find({ username: {$gt: ""} }).explain()

    "indexBounds" : {
            "username" : [
                    [
                            "",
                            {

                            }
                    ]
            ]
    },

Về bản chất, điều này giống với truy vấn ban đầu của bạn, có nghĩa là khớp với bất kỳ chuỗi.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Có thể có điều kiện trong dân cư cầy mangut không

  2. Hiện tùy chọn lưu trữ MongoDB mà tiện ích bổ sung Heroku mLab đang bị xóa

  3. Làm thế nào để tìm vào mongodb đến mục cuối cùng của một mảng?

  4. Mongodb $ trong chống lại một trường các đối tượng của mảng thay vì các đối tượng của mảng

  5. Thuộc tính đa ngôn ngữ trong MongoDB