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

MongoDBのrunCommand()でcollModコマンドを使う方法を解説

collModコマンドとは

MongoDBのcollModは、既存のコレクションにオプションを追加したり、ビューの定義を変更したりするための管理コマンドです。このコマンドは単独では実行できず、runCommand()メソッドと組み合わせて使用します。

本記事では、実際にコレクションを作成し、runCommand()経由でcollModを実行する手順を順番に解説していきます。

1. ドキュメントを含むコレクションを作成する

まず、insertOne()メソッドを使ってサンプル用のコレクション「demo13」にドキュメントを挿入します。

> db.demo13.insertOne({"StudentFirstName":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e0f730ad7df943a7cec4fa6")
}
> db.demo13.insertOne({"StudentFirstName":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e0f7310d7df943a7cec4fa7")
}
> db.demo13.insertOne({"StudentFirstName":"Bob"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e0f7313d7df943a7cec4fa8")
}

2. find()メソッドで登録済みドキュメントを確認する

find()メソッドを使うと、コレクション内のすべてのドキュメントを表示できます。挿入したデータが正しく登録されているか確認してみましょう。

> db.demo13.find();

実行すると、以下のように3件のドキュメントが出力されます。

{ "_id" : ObjectId("5e0f730ad7df943a7cec4fa6"), "StudentFirstName" : "Chris" }
{ "_id" : ObjectId("5e0f7310d7df943a7cec4fa7"), "StudentFirstName" : "David" }
{ "_id" : ObjectId("5e0f7313d7df943a7cec4fa8"), "StudentFirstName" : "Bob" }

3. runCommand()でcollModを実行する

次に、runCommand()とcollModを組み合わせたクエリを実行します。ここでは例として、コレクションのストレージ割り当て方式を制御するusePowerOf2Sizesオプションをfalseに変更しています。

> db.runCommand( { collMod: "demo13", usePowerOf2Sizes: false })

実行結果は以下の通りです。

{ "usePowerOf2Sizes_old" : true, "usePowerOf2Sizes_new" : false, "ok" : 1 }

実行結果の見方

  • usePowerOf2Sizes_old: 変更前の設定値(true)
  • usePowerOf2Sizes_new: 変更後の設定値(false)
  • ok : 1: コマンドが正常に完了したことを示すステータス

usePowerOf2Sizesは、ドキュメント保存時のディスク領域を2の累乗サイズで割り当てるかどうかを指定するオプションです。trueの場合は断片化を抑えられる一方で無駄な領域が生じることがあり、falseに設定すると従来の正確なサイズ割り当てに戻ります。

このように、collModを使えばコレクションの動作や設定を再作成なしで柔軟に変更できるため、運用中のシステムでも便利に活用できます。

  1. MongoDBで「NOT LIKE」を実現する方法|$not演算子と正規表現の使い方

    MongoDBには、SQLにあるような「NOT LIKE」演算子は用意されていません。しかし、$not演算子と正規表現を組み合わせることで、同じ条件指定を簡単に実現できます。この記事では、実際にコレクションを作成しながら、$not演算子の使い方を具体的に解説します。1. サンプルコレクションの作成まずは動作確認のためのコレクションを作成します。以下のクエリで、学生名(StudentName)を含むドキュメントを5件挿入します。> db.notLikeOperatorDemo.insertOne({StudentName:John Doe}); { acknowledged : tr

  2. MongoDBでコンソールをクリアする2つの方法|ショートカット「Ctrl + L」とコマンド「cls」の使い方

    MongoDBのシェル(mongo / mongosh)を使っていると、実行したクエリや結果がどんどん積み重なり、画面が見づらくなることがあります。そんなときに便利なのがコンソールのクリア機能です。MongoDBでは、以下の2つの方法でコンソールをクリアできます。 方法1:キーボードショートカット「Ctrl + L」を使う 最も手軽なのが、キーボードショートカットを使う方法です。次のキーを押すだけで、即座にコンソールをクリアできます。 Ctrl + L このキーを押すと、それまで表示されていたログや実行結果がすべて消え、まっさらな状態になります。Linuxのターミナルなどと同じ操作感なので、