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

MongoDBのクエリ結果を見やすい形式で表示する方法(findOne・toArray活用術)

MongoDBの結果をより見やすい形式で確認する方法

はい、findOne() メソッドを使えば、ドキュメントを整形された読みやすい形式で表示できます。基本の構文は以下のとおりです。

db.yourCollectionName.findOne();

また、toArray() を組み合わせることで、複数件の検索結果を配列として整形表示することも可能です。

db.yourCollectionName.find().toArray();

サンプルデータの作成

まず、動作を確認するためにドキュメントを含むコレクションを作成しましょう。

> db.betterFormatDemo.insertOne({"StudentName":"Adam Smith","StudentScores":[98,67,89]});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5cd7ab826d78f205348bc640")
}
> db.betterFormatDemo.insertOne({"StudentName":"John Doe","StudentScores":[67,89,56]});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5cd7ab936d78f205348bc641")
}
> db.betterFormatDemo.insertOne({"StudentName":"Sam Williams","StudentScores":[45,43,33]});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5cd7aba76d78f205348bc642")
}

find()メソッドでの標準的な出力

find() メソッドを使って、コレクション内のすべてのドキュメントを表示してみます。

> db.betterFormatDemo.find();

実行すると、各ドキュメントが1行で圧縮された次のような出力が得られます。

{ "_id" : ObjectId("5cd7ab826d78f205348bc640"), "StudentName" : "Adam Smith", "StudentScores" : [ 98, 67, 89 ] }
{ "_id" : ObjectId("5cd7ab936d78f205348bc641"), "StudentName" : "John Doe", "StudentScores" : [ 67, 89, 56 ] }
{ "_id" : ObjectId("5cd7aba76d78f205348bc642"), "StudentName" : "Sam Williams", "StudentScores" : [ 45, 43, 33 ] }

この形式でも内容は確認できますが、フィールドが多いドキュメントでは読みづらくなりがちです。そこで、以下の2つの方法が役立ちます。

ケース1:findOne() を使う方法

findOne() を使うと、条件に一致した最初の1件だけをインデント付きの整形フォーマットで表示できます。

> db.betterFormatDemo.findOne();

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

{
    "_id" : ObjectId("5cd7ab826d78f205348bc640"),
    "StudentName" : "Adam Smith",
    "StudentScores" : [
        98,
        67,
        89
    ]
}

ケース2:find().toArray() を使う方法

すべての検索結果を整形して確認したい場合は、find().toArray() が便利です。結果全体が配列としてきれいに整形されて出力されます。

> db.betterFormatDemo.find().toArray();

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

[
    {
        "_id" : ObjectId("5cd7ab826d78f205348bc640"),
        "StudentName" : "Adam Smith",
        "StudentScores" : [
            98,
            67,
            89
        ]
    },
    {
        "_id" : ObjectId("5cd7ab936d78f205348bc641"),
        "StudentName" : "John Doe",
        "StudentScores" : [
            67,
            89,
            56
        ]
    },
    {
        "_id" : ObjectId("5cd7aba76d78f205348bc642"),
        "StudentName" : "Sam Williams",
        "StudentScores" : [
            45,
            43,
            33
        ]
    }
]

補足:pretty() メソッドも活用しよう

mongoシェルでは、db.collection.find().pretty() のように pretty() を付けることでも、同様にインデントされた整形出力を得られます。1件だけ確認したいなら findOne()、全件を整理して見たいなら find().toArray().pretty() といった使い分けがおすすめです。

  1. 【保存版】「Unsubscriber」でメルマガ購読解除をラクラク自動化する方法

    多くの人は毎日大量のメールを受け取っていますが、その大半は友人からのものではなく、自動配信されるニュースレターやクーポンなどの不要なメールです。これらをいちいち削除するのは大きな負担になるため、根本的な解決策として「購読解除」を検討しましょう。 ただし、手動で購読解除する方法には落とし穴があります。まれに、解除操作自体がスパム業者に対して「このアドレスは有効だ」というサインになってしまうことがあるからです。そこで便利なのが、無料ツールUnsubscriberです。このツールを使えば、面倒な解除作業を自動化できます。 メールマガジンを効率的に解除する最良の方法 まず、Unsubscriberの公

  2. Flatfileレビュー:面倒な顧客データのインポートを劇的に改善する方法

    どの企業にとっても、散らかった顧客データのインポートは時間がかかり、ストレスが溜まり、Excelでの何時間にも及ぶデータ整形作業がつきものです。だからこそFlatfileは、企業が顧客データのオンボーディングに向き合う方法を変えようとしています。その目標は、データの整理に費やす時間を減らし、データを活用する時間を増やすこと。Flatfileの主力データインポーター「Portal」は、B2B企業が顧客へエレガントなインポート体験を提供できるよう支援します。 ※本記事はスポンサード記事であり、Flatfileの協力により作成されました。 主な機能の概要 一見すると、Flatfileはシンプルすぎ