MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

indeks luwak sudah ada dengan opsi yang berbeda

periksa bidang mana yang Anda tentukan indeks teksnya. Saat ini mongodb hanya mengizinkan satu indeks teks per koleksi. jadi jika Anda telah menentukan indeks teks pada kolom desc dan mencoba menggunakan indeks itu pada beberapa kolom lain, Anda pasti akan mendapatkan kesalahan ini.

dapatkah Anda mencoba untuk menanyakan indeks Anda dan melihat di kolom mana Anda membuatnya. Untuk mendapatkan indeks, Anda dapat melakukan

db.collection.getIndexes()

dan itu akan mengembalikan sesuatu seperti ini

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

sekarang jika Anda ingin cakupan di kolom lain juga untuk menggunakan indeks ini cukup jatuhkan indeks ini

db.collection.dropIndex('desc_text');

lalu buat ulang dengan memasukkan semua kolom yang ingin Anda cakup oleh indeks teks,

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. MongoError:Opsi 'kursor' diperlukan, kecuali untuk agregat dengan argumen penjelasan

  2. Penerapan dan Pemeliharaan MongoDB Menggunakan Ansible

  3. Menggunakan JSON dengan MongoDB?

  4. Mengambil data dari mongodb melalui nodejs dan mengungkapkan ke halaman html

  5. Dapatkan semua nama bidang dalam koleksi mongodb?