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

chỉ mục mongoose đã tồn tại với các tùy chọn khác nhau

kiểm tra trường nào bạn đã xác định chỉ mục văn bản của mình. Ngay bây giờ mongodb chỉ cho phép một chỉ mục văn bản cho mỗi bộ sưu tập. vì vậy nếu bạn đã xác định chỉ mục văn bản trên cột mô tả và cố gắng sử dụng chỉ mục đó trên một số cột khác, bạn nhất định gặp phải lỗi này.

bạn có thể thử truy vấn chỉ mục của mình và xem bạn đã tạo nó trên cột nào. Để nhận các chỉ mục, bạn có thể làm

db.collection.getIndexes()

và nó sẽ trả về một cái gì đó như thế này

[
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_",
        "ns" : "some.ns"
    },
    {
        "v" : 1,
        "key" : {
            "_fts" : "text",
            "_ftsx" : 1
        },
        "name" : "desc_text",
        "ns" : "some.ns",
        "weights" : {
            "title" : 1
        },
        "default_language" : "english",
        "language_override" : "language",
        "textIndexVersion" : 2
    }
]

bây giờ nếu bạn muốn phạm vi trong các cột khác cũng để sử dụng chỉ mục này, chỉ cần bỏ chỉ mục này xuống

db.collection.dropIndex('desc_text');

và sau đó tạo lại nó bằng cách bao gồm tất cả các cột bạn muốn được bao phủ bởi chỉ mục văn bản,

db.collection.createIndex({
    title:'text;,
    body: 'text;,
    desc: 'text',
    ...... and so on
});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách truy vấn tất cả các tài liệu con

  2. Biểu thức không được công nhận '$ đầu tiên'

  3. Cách tốt nhất để xử lý các khóa compsite khi sử dụng Salat với MongoDB là gì?

  4. MongoDB:Số lượng phần tử mảng lồng nhau phù hợp

  5. Thiết lập MongoDB với node.js:Lỗi:không kết nối được với [localhost:27017]