sql >> データベース >  >> NoSQL >> MongoDB

同じサーバー上の1つのMongoDBから別のMongoDBにコレクションを複製する方法

    いくつかのこと:

    1. 一般的に、 cloneCollection 異なるmongoインスタンスに使用されますが、同じインスタンスにコピーすることはできません。
    2. v4.2を使用している場合も copyDBの使用をやめる必要があります & cloneCollection 非推奨になっているためv4.2との互換性 &mongodump の使用を開始します および mongorestore または mongoexport & mongoimport
    3. mongodumpを使用することをお勧めします & mongorestore

      1. 原因mongodump MongoDBのデータ型を保持します。 bson タイプ。
      2. mongodump mongoexportとしてバイナリを作成します bsonを変換します jsonへ &再び mongoimport jsonを変換します bsonへ 書いている間、それが彼らが遅い理由です。コレクションデータを視覚的に分析する場合、または json を使用する場合は、mongoexportとmongoimportを使用できます。 その他の目的のデータ。
    4. 以下のスクリプトをシェルで実行できます

      declare - a collections = ("collectionName1" "collectionName2")
      for i in "${collections[@]}"
      do
      echo "$i"
          mongodump --host "All-shards" --username=uname --password password --ssl --authenticationDatabase admin --db dbname --collection "$i"
      
          mongorestore --host=host-shard-name --port=27017 --username=uname --password=psswrd --ssl --authenticationDatabase=admin --db=dbname --collection= "$i" ./dump/dbName/"$i".bson;
      done
      

    mongodumpを使用するには 、実行中のmongodまたはmongosインスタンスに対してmongodumpを実行する必要があります。したがって、これらのコマンドは、mongoが正しくインストールされ、パスの設定が適切であることを期待して実行されています。そうでない場合は、mongoフォルダーに移動して、 ./ mongodumpのように実行できます。 & ./ mongorestore 。上記のスクリプトは、複数のコレクションをバックアップする場合に役立ちます。スクリプトで次のようないくつかのことを指定する必要があります:

    1. mongodump--host "All-shards" ->ここで、MongoDBがレプリカセットの場合はすべてのシャードを指定する必要があります。そうでない場合は、 localhost:27017を指定できます。 。

    2. mongorestore --host =host-shard-name ->レプリカセットのシャードを1つ指定する必要があります。指定しない場合は、 localhost 、ここでオプションとなるものはほとんどありません-ssl -ユーザー名-パスワード

    3. つまりmongodump dumpという名前のフォルダを作成します 初めてdbNamesのサブフォルダーがあり、各サブフォルダーには bsonがあります ダンプされたコレクション名に対応するファイルなので、 dbNameを参照する必要があります 復元コマンドとコレクション名は変数iから取得されます -> ./ dump / dbName / "$ i" .bson

    注: MongoDB v3.2 非常に古く、クラウドベースのMongoDBサービス Mongo-atlas すでにライフサイクルの終わりに達しているので、できるだけ早くアップグレードしてください。無料のmongoインスタンスを探している場合、またはMongoDBから始めている場合は、アトラスを試すことができます。



    1. htmlspecialcharsは配列内の値を削除しますか?

    2. PyMongoを使用した自己署名SSL接続

    3. MongoDBの配列にネストされたサブドキュメントを削除します

    4. 認証メカニズムSCRAM-SHA-1はサポートされていません