CodeIQ Blog

自分の実力を知りたいITエンジニア向けの、実務スキル評価サービス「CodeIQ(コードアイキュー)」の公式ブログです。

難問だったと噂の“イカ娘せんべいがもらえる”MongoDB問題解説記事 #mongodb #mongonoryosai

CodeIQ中の人、babaQです。

7月28日に東工大蔵前会館で開催された
第一回納涼もんご祭り~寄って、見て、触ってmongo~」に参加してきました。

お祭りらしくバラエティあふれるブースの数々

MongoDBを知っている人も知らない人も参加OK!の
イベントだけあって、ブースもバラエティにあふれてました。

一番の大人気だったのは、東京スポーツさん(われらが東スポ)の腕相撲対決!
MongoDBとは何の関係もなさそうなんだけど(笑)

f:id:codeiq:20130808181434j:plain

サービス精神も旺盛です! カメラを向けると必ずポーズを決めてくれました。

f:id:codeiq:20130808181651j:plain

小学生向けプログラミング教育事業を行っているCA Tech Kidsさん。

f:id:codeiq:20130808182107j:plain

子供たちにも大人気。これは将来有望なプログラマが大量に誕生するかも!
でもこれもMongoDBには関係ない…ぞ!?

f:id:codeiq:20130808182528j:plain

Engine YardのPANDAマネージャー安藤祐介さんは、ヘリコプター搭載カメラを
ぶんぶん飛ばしてました。びっくりしたな~

f:id:codeiq:20130808184009j:plain

こちらも子供が大喜び!

f:id:codeiq:20130808190417j:plain

スマホで操作して飛ばしているのですが、カメラも付いてて動画も撮れるんです。

f:id:codeiq:20130808184224j:plain

ちなみに撮った動画はこんなかんじ(YouTube)
(でもMongoDBとの関連は…ない??)

イカ娘せんべいで笑いをとったCodeIQブース

こんな強豪(でもMongoDBは関係ない)がひし並ぶ中、CodeIQブースは・・・・・・

ジャ、ジャ、ジャーーーーーーーーーン!

イカ娘せんべいですよ♪

f:id:codeiq:20130808184920j:plain

ちゃんとお祭りらしく上からぶら下げたし

f:id:codeiq:20130808185005j:plain

MongoDB問題も用意したし

f:id:codeiq:20130808185141j:plain

ところが、そのMongoDB問題が難しすぎるという評判に…

まずい…イカ娘せんべいがさばききれない予感…

そこで、急きょ「イカ娘せんべいもらった#CodeIQ」とつぶやいたら
プレゼント作戦に切り替え。無事すべてはけました(笑)。

MongoDB問題解説

その難しいと評判の問題については、
出題者のMongoDBの日本ユーザグループ林田さんに解説を書いてもらいました。

まずはその問題。

【問題】
testdbデータベースのmatsuriコレクションに、以下のハッシュをインサートす
るコマンド(2つ)は何でしょう。
{"greeting":"hello mongodb!"}

# mongo
> [ 問1 ]
> [ 問2 ]

続いて、林田さんからの正解と解説発表です。

問1の正解:use codeiq

【解説】
MongoDBは、存在しないデータベースを選択することができます。
ただし、選択するだけではデータベースは作成されません。
MongoDBのデータベースは、データベースを選択し、コレクションへ最初のド
キュメントをinsertしたタイミングで作成されます。

問2の正解:db.matsuri.insert({"greeting":"hello mongodb!"})

【解説】
MongoDBでは、存在しないデータベースの存在しないコレクションに対し、ド
キュメントをinsertすることができます。
このタイミングで、データベースとコレクションが作成され、ドキュメントが
insertされます。

なお、以下のコマンドを実行することで、matsuriコレクションにinsertしたド
キュメントを確認することができます。

> db.matsuri.find()
{ "_id" : ObjectId("51cbc0a4a8618b2ede90b225"), "greeting" : "hello
mongodb!" }

※MongoDBでは、"_id"フィールドの値に自動的に一意な文字列が採番されます。


いかがでしたか? 
解説を見たら意外と簡単だったと思った人もいたのでは?

最後に林田さんと会場の様子をご紹介します!
とっても楽しかったです♪ お声がけいただき、ありがとうございます。

f:id:codeiq:20130809145426j:plain


CodeIQではこれからもMongoDBに関する問題も出題していきますので
楽しみにしていてくださいね!


エンジニアのための新しい転職活動!CodeIQのウチに来ない?の特集ページを見る