MongoDBのJavaScript(mongoシェル)でデータベースを選択する方法
MongoDBのmongoシェル(JavaScript環境)上で別のデータベースに切り替えたい場合は、getSiblingDB()メソッドを使用します。このメソッドを使えば、現在接続しているデータベースから、指定した名前の別のデータベースへ簡単に切り替えることができます。
getSiblingDB()の基本構文
以下のように、変数に取得したデータベースオブジェクトを代入して利用します。
var anyVariableName = db.getSiblingDB('yourDatabaseName');ここでは例として、「sample」というデータベースを選択してみましょう。
実際にデータベースを選択する手順
まず、getSiblingDB()を使って「sample」データベースを取得します。
> selectedDatabase = db.getSiblingDB('sample');実行すると、次のような出力が得られます。
sample
これで「sample」データベースが選択されました。続いて、ドキュメントを挿入していきます。
コレクションへのドキュメント挿入
ここでは「selectDatabaseDemo」というコレクションを作成し、そこにドキュメントを追加します。insertOne()メソッドを使って、1件ずつドキュメントを挿入します。
> db.selectDatabaseDemo.insertOne({"ClientName":"John Smith","ClientAge":23});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cda794b5667f1cce01d55ad")
}
> db.selectDatabaseDemo.insertOne({"ClientName":"Carol Taylor","ClientAge":24});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cda79565667f1cce01d55ae")
}出力の"acknowledged" : trueは挿入が正常に完了したことを示しており、insertedIdには自動生成されたObjectIdが格納されます。
find()メソッドでドキュメントを表示する
挿入したすべてのドキュメントを確認するには、find()メソッドを使用します。さらにpretty()を組み合わせると、整形された読みやすい形式で結果が表示されます。
db.selectDatabaseDemo.find().pretty();
実行すると、以下のような出力が得られます。
{
"_id" : ObjectId("5cda794b5667f1cce01d55ad"),
"ClientName" : "John Smith",
"ClientAge" : 23
}
{
"_id" : ObjectId("5cda79565667f1cce01d55ae"),
"ClientName" : "Carol Taylor",
"ClientAge" : 24
}まとめ
mongoシェル内でデータベースを切り替える際は、db.getSiblingDB('データベース名')を使うのが便利です。通常のuse データベース名コマンドと異なり、変数に代入できるため、スクリプト内で複数のデータベースを扱う場合にも柔軟に対応できます。
-
JavaでMongoDBデータベース内のすべてのコレクションを一覧表示する方法
MongoDBでは、show collections コマンドを使うことで、データベースに存在するすべてのコレクションの一覧を表示できます。 例 たとえば、MongoDBデータベースに以下のように3つのコレクションを作成したとします。 > use sampleDatabase switched to db sampleDatabase > db.createCollection(students) { ok : 1 } > db.createCollection(teachers) { ok : 1 } > db.createCollection(sample) { o
-
MongoDBセキュリティ強化の10のコツ:データベースを脅威から守るための基本対策
MongoDB®は手軽に導入できることで人気の高いNoSQLデータベースですが、継続的に追加される新機能に伴い、いくつかの落とし穴に直面することもあります。その中でも特に注意が必要なのが「セキュリティ」です。本記事では、MongoDBを安全に運用するためのポイントを詳しく解説します。 はじめに MongoDBアプリケーションにおけるセキュリティ維持は、データベース運用において極めて重要です。システムやデータベースの脆弱性(ループホール)を特定し、脅威から保護するためのセキュリティ手法を理解しておく必要があります。米国国防総省が定めるSecurity Technical Implementati