MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

mongoose index вече съществува с различни опции

проверете в кое поле сте дефинирали своя текстов индекс. В момента mongodb позволява само един текстов индекс на колекция. така че ако сте дефинирали текстов индекс в колона desc и се опитате да използвате този индекс в друга колона, вие непременно ще получите тази грешка.

можете ли да опитате да направите заявка за вашия индекс и да видите в коя колона сте го създали. За да получите индекси, можете да направите

db.collection.getIndexes()

и ще върне нещо подобно

[
    {
        "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
    }
]

сега, ако искате да обхватите и други колони, за да използвате този индекс, просто пуснете този индекс

db.collection.dropIndex('desc_text');

и след това го създайте отново, като включите всички колони, които искате да бъдат обхванати от текстов индекс,

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. Филтрирайте вложен масив с условия, базирани на стойности на обекти на много нива и ги актуализирайте - MongoDB агрегат + актуализация

  2. MongoDB:безопасно ли е да използвате идентификатора на документа публично?

  3. MongoDB Aggregation изглежда много бавно

  4. Как да създадете схема Mongoose с масив от идентификатори на обекти?

  5. Обработка на изпращане на два параметъра в извикване на API в Angular App