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

Bagaimana cara menyimpan output kueri dalam temp db?

Mongo tidak mendukung koleksi "temp".

Hal yang biasa dilakukan di sini adalah tidak benar-benar menulis seluruh hasil keluaran ke DB lain karena itu sama sekali tidak ada gunanya karena Elasticsearch melakukan caching sendiri sehingga Anda tidak memerlukan lapisan apa pun di atasnya.

Selain itu, karena masalah IO, biasanya merupakan ide yang buruk untuk menulis, katakanlah, kumpulan 10k catatan hasil ke Mongo atau DB lain.

Ada permintaan fitur untuk apa yang Anda bicarakan:https://jira.mongodb.org/ jelajahi/SERVER-3215 tapi belum ada perencanaan.

Contoh

Anda dapat memiliki tabel hasil.

Di dalam tabel ini Anda akan memiliki dokumen yang terlihat seperti:

{keywords: ['bok', 'mongodb']}

Setiap kali Anda mencari dan menggulir setiap item hasil, Anda akan menulis baris ke tabel ini yang mengisi bidang kata kunci dengan kata kunci dari hasil pencarian itu. Ini akan menjadi per hasil pencarian per daftar hasil pencarian per pencarian. Mungkin akan lebih baik untuk mengalirkan setiap hasil pencarian ke MongoDB saat mereka masuk. Saya tidak pernah memprogram Python (meskipun saya ingin belajar) jadi contoh dalam pseudo:

var elastic_results = [{'elasticresult'}];
foreach(elastic_results as result){
    //split down the phrases in this result and make a keywords array
    db.results_collection.insert(array_formed_from_splitting_down_result); // Lets just lazy insert no need for batch or trying to shrink the amount of data to one go or whatever, lets just stream it in.
}

Jadi saat Anda melanjutkan hasil Anda, pada dasarnya Anda hanya memasukkan massal secepat mungkin membuat semacam "aliran" input ke MongoDB. Ia dapat melakukan ini dengan cukup baik.

Ini kemudian akan memberi Anda daftar kata dan kata kerja bahasa yang dapat dipisahkan untuk memproses hal-hal seperti MR dan hal-hal untuk mengumpulkan statistik tentang mereka.

Tanpa mengetahui lebih banyak tentang skenario Anda, ini adalah jawaban terbaik saya.

Ini tidak menggunakan konsep tabel temp melainkan membuat data Anda permanen yang tidak masalah karena Anda ingin menggunakan Mongo sebagai mesin penyimpanan untuk tugas lebih lanjut.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Merencanakan &Mengelola Skema di MongoDB (Meskipun Tanpa Skema)

  2. mongoimport Docker Gagal:kesalahan saat menyambung ke server db:tidak ada server yang dapat dijangkau

  3. Hapus dokumen bersarang dengan kondisi di MongoDB

  4. Integrasi &Layanan Tersedia dari MongoDB untuk Cloud

  5. pencarian agregat mongoDB pada array objek bersarang