MongoDBでシェル操作時に忘れがちなコマンド

仕事柄、日頃触れるDBがコロコロと変わるので、久しぶりにMongoDBに戻ってくるたびに 「あれ、あれどうやるんだっけ!?」となるので備忘録。

全件取得

db.hoge.find()

出力結果

> db.user.find()
{ "_id" : ObjectId("15cdcc0e14e2a44b82d2e3d6"), "user_id": "user001", "name": "A", "age": 11},
{ "_id" : ObjectId("15cdcc0e14e2a44b82d2e3d7"), "user_id": "user002", "name": "B", "age": 12},
{ "_id" : ObjectId("15cdcc0e14e2a44b82d2e3d8"), "user_id": "user003", "name": "C", "age": 13},
{ "_id" : ObjectId("15cdcc0e14e2a44b82d2e3d9"), "user_id": "user004", "name": "D", "age": 14},
...
{ "_id" : ObjectId("15cdcc0e14e2a44b82d2e3d0"), "user_id": "user010", "name": "J", "age": 20},
{ "_id" : ObjectId("15cdcc0e14e2a44b82d2e3a6"), "user_id": "user011", "name": "K", "age": 21},
{ "_id" : ObjectId("15cdcc0e14e2a44b82d2e3b6"), "user_id": "user012", "name": "L", "age": 22},
Type "it" for more

1件取得

db.hoge.findOne()

出力結果

{ 
    "_id" : ObjectId("15cdcc0e14e2a44b82d2e3d6"),
    "user_id": "user001",
    "name": "A", 
    "age": 11
}

find() を見やすくするforEach(printjson)

find() では結果が1行ずつ表示となり、またType "it" for more と表示に制限がされ見づらい場合がある。

db.hoge.find().limit(3).forEach(printjson)

出力結果

{ 
    "_id" : ObjectId("15cdcc0e14e2a44b82d2e3d6"),
    "user_id": "user001",
    "name": "A", 
    "age": 11
},
{ 
    "_id" : ObjectId("15cdcc0e14e2a44b82d2e3d7"),
    "user_id": "user002",
    "name": "B", 
    "age": 12
},
{ 
    "_id" : ObjectId("15cdcc0e14e2a44b82d2e3d8"),
    "user_id": "user003",
    "name": "C", 
    "age": 13
}

こんなかんじで、改行表示してくれるので便利。limitをつけなければ全件表示してくれる。