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

Bagaimana cara menyalin koleksi dari satu database ke database lain di server yang sama menggunakan PyMongo?

Setelah banyak kebingungan dan pencarian jiwa, saya akhirnya dapat melacak ini ke dicts di Python yang tidak berurutan (setidaknya sebelum 3.6) dan MongoDB mengharapkan kamus BSON yang dipesan.

Menggunakan OrderedDict seperti yang ditunjukkan dalam Cara memesan kamus di pymongo? selesaikan ini:

>>> from collections import OrderedDict
>>> client.admin.command(
    OrderedDict([('renameCollection','db1.coll2'), ('to','db2.coll2')]))
{u'ok': 1.0}

Alternatif lain adalah dengan menggunakan SON objek dari BSON.

>>> import bson
>>> client.admin.command(
    bson.son.SON([('renameCollection','db1.coll2'), ('to','db2.coll2')]))
{u'ok': 1.0}

Pendekatan lain adalah meneruskan Javascript ke MongoDB menggunakan eval() fungsi:

>>> client.admin.eval(
    "db.runCommand({'renameCollection':'db1.coll2', 'to':'db2.coll2'})") 
{u'ok': 1.0}

Saya menemukan versi Javascript mentah kurang pythonic tetapi berguna karena memungkinkan saya untuk menguji fungsionalitas MongoDB tanpa harus menjalankan shell MongoDB. Saya juga belum melihatnya disebutkan banyak pada pertanyaan PyMongo StackOverflow, jadi saya pikir itu layak untuk disertakan di sini.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoError:Pengubah tidak dikenal:$pushAll di node js

  2. errmsg :Tidak ada host yang dijelaskan dalam konfigurasi baru 1 untuk replika set rs0 memetakan ke node ini, Mengapa saya menerima pesan ini?

  3. Apakah normal memiliki banyak koneksi antara node dan mongo saat menggunakan luwak?

  4. Dapatkan dokumen di MongoDB tanpa menentukan koleksi

  5. Keluarkan objek biasa ke dokumen luwak