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
をつけなければ全件表示してくれる。