見出し画像

MongoDBについて学んでみた

MongoDBは、NoSQL(非SQL)データベースの一つ。
SQLというのは耳にしたことがあるけど、よくわかってなかった。
大企業とか銀行とかある程度、このデータをもらうとか、とってくるとか、データの型が決まってる場合は、SQLを使うのだそう。非SQLは、ベンチャーとかスタートアップで、サービスが頻繁に変わったりするから、もってくるデータベース型がまだ決まってません、みたいなところが使ってることが多いらしい。

①MongoDBはデータベースの一種

データベースは、情報を整理して保存する場所のようなもの。MongoDBは特別な種類のデータベースで、情報を「ドキュメント」と呼ばれるファイルに保存する。これらのドキュメントはテキスト形式で、例えば、JSONのようなデータ。

②ドキュメントとは

ドキュメントは、データの塊。たとえば、ウェブサイトのユーザー情報があったときに各ユーザーに関する情報(名前、メールアドレス、年齢など)を1つのドキュメントにまとめることができる。MongoDBはこれらのドキュメントを保存し、必要なときに簡単に見つけることができる。


Pythonでデータベースと紐づけてみた

しかし、設定に苦戦・・・・
アカウントを言われた通りにやったはずなのに、英語だから訳しても意味がわからないし、どこを押せばいいかわからなくて、ああああああ、というパニックになり、講師の先生に泣きついた。。。。
夜も深くなってるっていうのに、先生応えてくれて、なんと・・・
パスワードの貼り付けがうまくいってないだけだった・・・・・・・・・・
これも泣ける。私の馬鹿野郎


とりあえず、なんとかデータベースとつながったのでmongodbに
データを入れていく。db.users.insert_one({'name':'bobby','age':21})
という型で、あらかじめデータベースにデータを入れた。
db.users.insert_one({'name':'bobby','age':21})
db.users.insert_one({'name':'太郎','age':20}) db.users.insert_one({'name':'john','age':30})
これを仕込んでおいた。

from pymongo import MongoClient


client = MongoClient('mongodb+srv://sparta:test@cluster0.kzdlimp.mongodb.net/Cluster0?retryWrites=true&w=majority')
db = client.dbsparta

all_users = list(db.users.find({},{'_id':False}))

for a in all_users:
    print(a)

入れてから、すべてのデータをもってくるというコードをやってみた。

*********************
{'name': '太郎', 'age': 27}
{'name': '花子', 'age': 30}
{'name': '伸夫', 'age': 20}

プロセスは終了コード 0 で終了しました
***********************
でけたっぽい。
{'_id':False}は、idを表示させない、っていう指示みたい。
だからこれを消すと、idも出てくるみたい。

「print(a)を、print(a['name'])にしたらきっと名前が出てくる。」って
講師がいうから、やってみた。そうか、大かっこで名前をっていうデータを呼び出したのか。a['name']=いでよ!aの中の名前。

*****************
太郎
花子
伸夫

プロセスは終了コード 0 で終了しました
******************

ほんとだ。

「一つのデータだけを持ってくる方法」
user = db.users.find_one({})
print(user)
find_one({})が1個だけもってくる、という指示らしい。

db.users.update_one({'name':'太郎'},{'$set':{'age':19}})
といれると、mongodb上にあるデータの年齢が変わった。
なので、データを変更して入れるコードらしい。
意味が、1個目のデータの太郎の年齢を変える、かな。。。

db.users.delete_one({'name':'太郎'})

これを入れたら、太郎だけのデータが、mongdbで消えてた。

この記事が気に入ったらサポートをしてみませんか?