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

MongoDBのdb.<コレクション名>.stats()出力におけるmaxフィールドの意味とは?

maxフィールドの意味

MongoDBのdb.<コレクション名>.stats()の出力に含まれるmaxフィールドは、そのコレクションに格納できるドキュメント数の上限値を示します。このフィールドが意味を持つのは、主にキャップドコレクション(Capped Collection)を作成する場合です。

キャップドコレクションを作成する際にmaxオプションを指定すると、コレクション内のドキュメント数を制限できます。ドキュメント数が上限に達すると、古いドキュメントから順に自動的に削除され、新しいドキュメントが追加される仕組みです(FIFO方式)。なお、サイズ上限(size)とドキュメント数上限(max)の両方を指定した場合は、どちらかの制限に先に達した時点で古いドキュメントの削除が始まります。

キャップドコレクションの作成例

以下は、maxフィールドを使用してキャップドコレクションを作成するクエリの例です。ここでは、最大50件のドキュメント・サイズ100バイトのコレクション「demo673」を作成しています。

> db.createCollection("demo673", { capped : true, size : 100, max : 50 } )
{ "ok" : 1 }

ドキュメントの挿入

次に、作成したコレクションにドキュメントを挿入してみましょう。

> db.demo673.insertOne({Name:"John",Age:23});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5ea3ec7304263e90dac943e8")
}
> db.demo673.insertOne({Name:"Bob",Age:21});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5ea3ec7804263e90dac943e9")
}
> db.demo673.insertOne({Name:"David",Age:20});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5ea3ec7f04263e90dac943ea")
}

find()メソッドですべてのドキュメントを表示

find()メソッドを使うと、コレクション内のすべてのドキュメントを確認できます。

> db.demo673.find();

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

{ "_id" : ObjectId("5ea3ec7304263e90dac943e8"), "Name" : "John", "Age" : 23 }
{ "_id" : ObjectId("5ea3ec7804263e90dac943e9"), "Name" : "Bob", "Age" : 21 }
{ "_id" : ObjectId("5ea3ec7f04263e90dac943ea"), "Name" : "David", "Age" : 20 }

まとめ

stats()の出力にあるmaxフィールドは、キャップドコレクションに設定されたドキュメント数の上限を表します。ログデータのように、最新の一定件数だけを保持したいケースで特に有用な機能です。

  1. Twitterのバイオとは?意味・変更方法と魅力的な例文を徹底解説

    Twitterのバイオとは?その意味と役割Twitterのバイオ(自己紹介文)は、プロフィール設定を構成する重要な要素のひとつです。プロフィール画面では、名前とハンドルネーム(@ユーザー名)の下に表示されます。自分がどのような人物なのかを短く紹介したり、興味や関心を伝えたり、自分のビジネスをアピールしたりするために活用しましょう。バイオの変更方法バイオはプロフィールの編集からいつでも変更できます。ハッシュタグ(#)や@ユーザー名を組み合わせれば、より多くの人に自分のアカウントを見つけてもらいやすくなります。なお、バイオにはスペースを含めて160文字までという文字数制限がある点に注意してください

  2. ブラウザのアドレスバーに表示される南京錠マークの本当の意味とは?HTTPS接続とサイトの安全性を徹底解説

    ブラウザのアドレスバーに表示される小さな南京錠アイコンは、色が変わったり、別のマークが重ねて表示されたり、テキストメッセージに置き換わったりすることがあります。「普通の南京錠なら安全、警告マークやメッセージが出ていれば危険」というのが一般的な理解ですが、実は話はもう少し複雑です。というのも、この南京錠が示しているのは「そのサイトとの通信がHTTPSで暗号化されているかどうか」だけであり、サイト自体が正規のものであるか、完全に安全であるかまでは教えてくれないからです。 「安全」を示す南京錠が教えてくれること Chrome/Chromium()、Firefox()、Edge()、Safari(