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

Pymongo / MongoDB:buat indeks atau pastikan indeks?

@andreas-jung benar dalam ensure_index() adalah pembungkus create_index() , saya pikir kebingungan muncul dengan frasa:

Saat indeks dibuat (atau dipastikan) oleh PyMongo, indeks itu "diingat" selama ttldetik.

Bukan karena indeks bersifat sementara atau "sementara", yang terjadi adalah selama jumlah detik yang ditentukan, panggilan ke ensure_index() mencoba membuat indeks yang sama lagi tidak memiliki efek apa pun dan tidak panggil create_index() di bawahnya, tetapi setelah "cache" itu kedaluwarsa, panggilan ke ensure_index() akan panggil lagi create_index() di bawahnya.

Saya sangat memahami kebingungan Anda karena sejujurnya dokumen PyMongo tidak menjelaskan cara kerjanya dengan baik, tetapi jika Anda menuju ke dokumen Ruby, penjelasannya sedikit lebih jelas:

  • (String) sure_index(spec, opts ={})

Memanggil create_index dan menyetel tanda untuk tidak melakukannya lagi selama X menit lagi. Kali ini dapat ditetapkan sebagai opsi saat menginisialisasi objek Mongo::DB sebagai opsi[:cache_time] Perubahan apa pun pada indeks akan disebarkan melalui terlepas dari waktu cache (mis. perubahan arah indeks)

Parameter dan opsi untuk metode ini sama dengan parameter untukCollection#create_index.

Contoh:

Call sequence:

Time t: @posts.ensure_index([['subject', Mongo::ASCENDING]) -- calls create_index and sets the 5 minute cache

Time t+2min : @posts.ensure_index([['subject', Mongo::ASCENDING]) -- doesn't do anything

Time t+3min : @posts.ensure_index([['something_else', Mongo::ASCENDING]) -- calls create_index and sets 5 minute cache

Time t+10min : @posts.ensure_index([['subject', Mongo::ASCENDING]) -- calls create_index and resets the 5 minute counter

Saya tidak mengklaim driver bekerja persis sama, hanya saja untuk tujuan ilustrasi penjelasan mereka sedikit lebih baik IMHO.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sisipan MongoDBSatu()

  2. Cassandra vs. MongoDB:mana yang harus Anda pilih

  3. Hapus Duplikat dari MongoDB

  4. Performa MongoDB dengan struktur data yang berkembang

  5. Promosikan subbidang ke tingkat teratas dalam proyeksi tanpa mencantumkan semua kunci