MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBであるデータベースから別のデータベースへレコードを挿入する方法

MongoDBでは、useコマンドを使用することで、データベースを自由に切り替えることができます。この記事では、「test」データベース内のコレクションに保存されたレコードを、「sample」という名前の別のデータベースに挿入(コピー)する手順を、実際のクエリ例とともに詳しく解説します。

手順1: 元データベースにコレクションとドキュメントを作成する

まず、insertOne()メソッドを使って、コレクション「insertOneRecordDemo」にドキュメントを作成します。クエリは以下の通りです。

> db.insertOneRecordDemo.insertOne({"UserName":"Larry","UserAge":23});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c9534de16f542d757e2b452")
}
> db.insertOneRecordDemo.insertOne({"UserName":"Chris","UserAge":26});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c9534e816f542d757e2b453")
}
> db.insertOneRecordDemo.insertOne({"UserName":"David","UserAge":25});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5c9534f116f542d757e2b454")
}

手順2: すべてのドキュメントを表示する

find()メソッドを使うと、コレクション内のすべてのドキュメントを表示できます。クエリは以下の通りです。

> db.insertOneRecordDemo.find().pretty();

出力結果は以下の通りです。

{
    "_id" : ObjectId("5c9534de16f542d757e2b452"),
    "UserName" : "Larry",
    "UserAge" : 23
}
{
    "_id" : ObjectId("5c9534e816f542d757e2b453"),
    "UserName" : "Chris",
    "UserAge" : 26
}
{
    "_id" : ObjectId("5c9534f116f542d757e2b454"),
    "UserName" : "David",
    "UserAge" : 25
}

手順3: 別のデータベースにレコードを挿入する

以下が、あるMongoDBデータベースから別のデータベースへレコードを挿入するためのクエリです。まずfind()で元のコレクションの全ドキュメントを変数に取得し、useコマンドで「sample」データベースに切り替えてから、forEach()で各ドキュメントを挿入します。

> var AllDocumentsFromSourceCollection = db.insertOneRecordDemo.find();
> use sample;
switched to db sample
> AllDocumentsFromSourceCollection.forEach(function(allRecords){ db.getAllRecordsFromSourceCollectionDemo.insert(allRecords) });

手順4: 挿入結果を確認する

レコードが正しく挿入されたかどうかを確認しましょう。クエリは以下の通りです。

> db.getAllRecordsFromSourceCollectionDemo.find().pretty();

出力結果は以下の通りです。

{
    "_id" : ObjectId("5c9534de16f542d757e2b452"),
    "UserName" : "Larry",
    "UserAge" : 23
}
{
    "_id" : ObjectId("5c9534e816f542d757e2b453"),
    "UserName" : "Chris",
    "UserAge" : 26
}
{
    "_id" : ObjectId("5c9534f116f542d757e2b454"),
    "UserName" : "David",
    "UserAge" : 25
}

手順5: sampleデータベースのコレクション一覧を確認する

show collectionsコマンドで、sampleデータベースにコレクションが存在するかどうかを確認できます。クエリは以下の通りです。

> show collections;

出力結果は以下の通りです。

arraySizeErrorDemo
basicInformationDemo
copyThisCollectionToSampleDatabaseDemo
deleteAllRecordsDemo
deleteDocuments
deleteDocumentsDemo
deleteSomeInformation
documentWithAParticularFieldValueDemo
employee
findListOfIdsDemo
findSubstring
getAllRecordsFromSourceCollectionDemo
getElementWithMaxIdDemo
internalArraySizeDemo
largestDocumentDemo
makingStudentInformationClone
oppositeAddToSetDemo
prettyDemo
returnOnlyUniqueValuesDemo
selectWhereInDemo
sourceCollection
studentInformation
sumOfValueDemo
truncateDemo
updateInformation
userInformation

まとめ

このように、MongoDBではfind()メソッドで元のコレクションのドキュメントを取得し、useコマンドで別のデータベースに切り替えた後、forEach()を使って各ドキュメントを挿入することで、データベース間でレコードを簡単にコピーできます。大量のデータを扱う場合や、定期的なデータ移行が必要な場合は、mongodumpmongorestoreなどのツールの活用も検討するとよいでしょう。

  1. Word文書を別のWord文書に簡単に挿入する方法

    Word文書を別のWord文書に直接挿入できることをご存知でしょうか?実は、Microsoft Wordには標準でこの機能が備わっており、難しい操作は一切必要ありません。多くの方は、挿入したい文書を開いて内容をすべて選択し、コピーして別の文書に貼り付けるという方法を使いがちですが、間違いではありません。ただし、文書が長い場合は時間と手間がかかってしまいます。 そこで本記事では、コピー&ペーストよりも効率的な「テキストをファイルから」機能を使った挿入方法を、手順を追って詳しく解説します。 Word文書を別のWord文書に挿入する手順 すでに開いている文書に別の文書を追加するのが最も簡単な方法です

  2. Redis MOVEコマンドの使い方 – キーを別のデータベースへ移動する方法

    このチュートリアルでは、Redisデータストア上でキーをあるデータベースから別のデータベースへ移動する方法を解説します。キーの移動には、redis-cliで使用できるMOVEコマンドを利用します。 MOVEコマンドは、現在選択されているデータベース(ソース)から指定したキーを削除し、そのキーを移動先(デスティネーション)のデータベースに挿入するために使用されます。なお、以下の場合は操作が実行されず、戻り値として0が返されます。 指定したキーがソースデータベースに存在しない場合 同じ名前のキーがすでに移動先のデータベースに存在する場合 構文 Redis MOVEコマンドの基本構文は以下のとお