Mongo DBのfindで特定のフィールドのみを表示する

mongo

Mongo DBのfindで特定のフィールドだけを取得する方法を紹介します。
普通にfind()だけで検索するとダーっと全部のフィールドが出てきて見ずらいと方にオススメです。

[スポンサーリンク]

このページでやること

Mongo DBのfindで特定のフィールドだけを抽出する方法を解説します。

Mongo DBへの接続方法

まずはMongo DBへ接続します。
これより下のサンプルにでてくるDB「test_db」とコレクション「test_collecton」は用意をお願いします。
「test_collecton」のフィールドはidとsamplenumがあればOKです。

>mongo
MongoDB shell version: 2.6.5

DBスキーマへ接続します。

> use test_db
switched to db test_db

特定のフィールドを取得する

特定のフィールドのみを表示させるには、フィールドを指定して1を入れて表示します。
値が0の場合だと非表示になります。
以下の例だと、samplenumと_idの2つが表示されます。(IDはフィールドを指定していなくても表示されます。)

db.test_collecton.find({}, {'samplenum':1})

もし_IDを非表示にしたい場合は、以下のように'_id':0にしてIDを非表示にすることもできます。

db.test_collecton.find({}, {'samplenum':1, '_id':0})

さいごに

MongoDBで特定のフィールドを表示するのはSQLと違ってちょっとだけ特殊な記述ですね。
もう少しSQLライクに書ければ楽なのになー。と思いました。
これも慣れなのかなぁ。。
それでは!