Ryusuke Fuda's Tech Blog

Softweare Enginier about Web, iOS, Android.

MongoDB,find 特定のフィールドだけ表示

■ MongoDBでdb.videos.find(); とかするとフィールドが多いとかなり見ずらい。そこで、特定のフィールドだけ表示させたい。

■ コマンド例

db.videos.find({},{'_id':0, 'description':0, 'timestamp':0});

フィールド名: 0 が非表示でフィールド名: 1 が表示。
デフォルトが表示っぽいので、特定のフィールドだけ表示したい時は他のフィールドをすべて0にすればいい。

■ では1はどういうときに使うか。
条件が複数のときに使える。
titleが'Bike'だけで検索

>db.videos.find({'title': 'Bike'});
{ "_id" : ObjectId("51967021e66501b29f13b47f"),  "category" : "sports", "description" : "Riding motor bike",  timestamp" : 1370077875348, "title" : "Bike" }

当然全フィールド出てくる。

次に{'_id':0}を条件に追加

> db.videos.find({'title': 'Bike'},{'_id':0});
{ "category" : "sports", "description" : "Riding motor bike",  timestamp" : 1370077875348, "title" : "Bike" }

_idのフィールドは非表示になる。

次に{'_id':1}を条件にする。

> db.videos.find({'title': 'Bike'},{'_id':1});
{ "_id" : ObjectId("51967021e66501b29f13b47f") }

titleがBikeの_idだけが表示される。

参考)
https://wiki.mongodb.com/pages/viewpage.action?pageId=18907146