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で消えてた。
この記事が気に入ったらサポートをしてみませんか?