TIL(mongodb+CRUD+@)
5797 ワード
・自分で整理したTIL💪 なぜMongodb?
なぜデータベースを使用するのですか?
データは揮発性です.プログラムクローズですが、データは消えてしまいます...
保存を続行するには、db...
プログラム(ファイル)のデータ容量は限られている.
データとデータベースシステム...一緒に行動せよ!
複数のユーザーが使いやすい
RDBMS-sql<->SQLがサポートするすべての機能にほぼ代わる
バックエンドでのデータベースの重要性は非常に大きい!
スキーマ->NoSQL
sql->モードはすべてあります.アーキテクチャがないことを心配しません.データのソート、分類はnosqlより速い.
->金融取引、統計...これらをエクスポートする必要があるときは、いいですね.
->相手(真ん中が切れても->始まらない.お金自体が出ていないから)
->お金の完全性(総額は守らなければならない)
->sqlはこの目標をサポートします!!!非常に重要な行ex.銀行はrdbmsでなければなりません
(短所)パターン仕様を守っているのでいいですね
コラム(完全性を保つためには、すべての値を記入する必要があります)...重すぎる
負荷を分散するのは容易ではないでしょう.🔥
nosql->アーキテクチャがない->サービス進入障壁が低い->気に入らない場合は、将来の子供だけ例外処理すればよい.
->流量が増えるにつれて...フェイスブック...
->データの一貫性を放棄することで多くのメリットが得られます.
->目標を支援しない.途中で切れても答えはない私はあなたの完全性を尊重しません.
->複数機器の負荷処理(比較的容易)
(欠点)アーキテクチャがなく、標準化されたデータを得るのが難しい
row=機密データ1行->レコード<->ドキュメント(nosql)
->db別々のストレージはよくあることです
量が多いからかもしれない/負荷が大きいからかもしれない(通常はもっと深刻)
mongodbに自動増分はありません
mongodbにobjectIDがあります!(ex.pk) : _id:ObjectID
mongodbには2つのアーキテクチャ->ドキュメント:a:1、a:「1」、a:、(aでソート可能)があります.
Index(mongodb)
->リストまたは複数のデータ型をインデックスできます
pymongo先...!
「インデックスデータの事前ソート!」「繰り上げ」
それらを並べますか?何を基準にしますか?
カラムのインデックスを作成します.
複合インデックス->複数のコラムで使用可能
データベース内のインデックスを確認!!!
データベースにアクセスするときは、dbがストレスを受けないように気をつけてください.
可能であれば、Indexは適切に*
(欠点)インデックス登録を完了する必要がある欠点
ある程度性能を放棄しました...減少index
readとwriteの2つをよく考えてデザインします!!
すべての悪い演算子をチェック
hashのブログ...全部見ましょう^^
どんなに遅いクエリーでも何度か実行され、オペレータのみが使用されます.それは大丈夫です.
まずはmongodbに詳しい!
テーブルも作って...やるから!
mongodb&一緒にフラスコを見て(1-2週間)
mongoshで実習🦖 @ ソート 特定フィールドのみ出力
ああおもしろいおもしろい...呪文を暗唱して…^^💪mongoメソッド学習:https://docs.mongodb.com/manual/reference/method/#native 参考:https://blog.naver.com/shino1025/221293123637
なぜデータベースを使用するのですか?
データは揮発性です.プログラムクローズですが、データは消えてしまいます...
保存を続行するには、db...
プログラム(ファイル)のデータ容量は限られている.
データとデータベースシステム...一緒に行動せよ!
複数のユーザーが使いやすい
RDBMS-sql<->SQLがサポートするすべての機能にほぼ代わる
バックエンドでのデータベースの重要性は非常に大きい!
スキーマ->NoSQL
sql->モードはすべてあります.アーキテクチャがないことを心配しません.データのソート、分類はnosqlより速い.
->金融取引、統計...これらをエクスポートする必要があるときは、いいですね.
->相手(真ん中が切れても->始まらない.お金自体が出ていないから)
->お金の完全性(総額は守らなければならない)
->sqlはこの目標をサポートします!!!非常に重要な行ex.銀行はrdbmsでなければなりません
(短所)パターン仕様を守っているのでいいですね
コラム(完全性を保つためには、すべての値を記入する必要があります)...重すぎる
負荷を分散するのは容易ではないでしょう.🔥
nosql->アーキテクチャがない->サービス進入障壁が低い->気に入らない場合は、将来の子供だけ例外処理すればよい.
->流量が増えるにつれて...フェイスブック...
->データの一貫性を放棄することで多くのメリットが得られます.
->目標を支援しない.途中で切れても答えはない私はあなたの完全性を尊重しません.
->複数機器の負荷処理(比較的容易)
(欠点)アーキテクチャがなく、標準化されたデータを得るのが難しい
row=機密データ1行->レコード<->ドキュメント(nosql)
->db別々のストレージはよくあることです
量が多いからかもしれない/負荷が大きいからかもしれない(通常はもっと深刻)
mongodbに自動増分はありません
mongodbにobjectIDがあります!(ex.pk) : _id:ObjectID
mongodbには2つのアーキテクチャ->ドキュメント:a:1、a:「1」、a:、(aでソート可能)があります.
Index(mongodb)
->リストまたは複数のデータ型をインデックスできます
pymongo先...!
「インデックスデータの事前ソート!」「繰り上げ」
それらを並べますか?何を基準にしますか?
カラムのインデックスを作成します.
複合インデックス->複数のコラムで使用可能
データベース内のインデックスを確認!!!
データベースにアクセスするときは、dbがストレスを受けないように気をつけてください.
可能であれば、Indexは適切に*
(欠点)インデックス登録を完了する必要がある欠点
ある程度性能を放棄しました...減少index
readとwriteの2つをよく考えてデザインします!!
すべての悪い演算子をチェック
hashのブログ...全部見ましょう^^
どんなに遅いクエリーでも何度か実行され、オペレータのみが使用されます.それは大丈夫です.
まずはmongodbに詳しい!
テーブルも作って...やるから!
mongodb&一緒にフラスコを見て(1-2週間)
mongoshで実習🦖
> show dbs # 데이터베이스 목록 보기
> db # 현재 사용중인 db
> use <생성할 DB 이름> # DB가 없다면 생성, 이미 있다면 접속
> db
imls
# db.createCollection("<생성할 콜렉션 이름>") # 콜렉션 생성하기
> db.createCollection("imlmdb") # 테이블 생성된 것
{ "ok" : 1 }
> show collections # 콜렉션 리스트 출력
class
tok
# Create (insert)
> db.class.insert({"user_id":1, "name":"mimi"})
{
acknowledged: true,
insertedIds: { '0': ObjectId("61b982ddc4a0dfcb0cc67b66") }
}
>> db.class.insertMany([{"user_id":2, "name":"hash"},{"user_id":3,"name":"nex"},{"user_id":4,"name":"ria"}])
{
acknowledged: true,
insertedIds: {
'0': ObjectId("61b9835ec4a0dfcb0cc67b68"),
'1': ObjectId("61b9835ec4a0dfcb0cc67b69"),
'2': ObjectId("61b9835ec4a0dfcb0cc67b6a")
}
}
# Read (find)
> db.class.find({}) # 다 찾기
[
{
_id: ObjectId("61b982ddc4a0dfcb0cc67b66"),
user_id: 1,
name: 'mimi'
},
{
_id: ObjectId("61b9835ec4a0dfcb0cc67b68"),
user_id: 2,
name: 'hash'
},
{
_id: ObjectId("61b9835ec4a0dfcb0cc67b69"),
user_id: 3,
name: 'nex'
},
{
_id: ObjectId("61b9835ec4a0dfcb0cc67b6a"),
user_id: 4,
name: 'ria'
}
]
> db.class.find({"user_id":4})
[
{
_id: ObjectId("61b9835ec4a0dfcb0cc67b6a"),
user_id: 4,
name: 'ria'
}
]
# Update
> db.class.update({"name":"ria"}, {$set:{"name":"ria", "age":22}})
# $set을 사용해주어야함!
{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}
# 이후에 find로 찾아주면 update 된게 확인됨.
# Delete
> db.class.remove({"name":"mimi"})
{ acknowledged: true, deletedCount: 1 }
> db.class.find({"name":{$ne:"sophia"}})
# name이 sophia가 아닌 자료 찾기
> db.class.find({"user_id":{"$lt":4}})
# user_id가 4보다 작다
> db.class.find({"user_id":{"$lte":4}})
# user_id가 4보다 작거나 같다
> db.class.find({"user_id":{"$gt":4}})
# user_id가 4보다 크다
> db.class.find({"user_id":{"$gte":4}})
# user_id가 4보다 크거나 같다
> db.class.find({ $and: [{"user_id":{"$gte":3}}, {"name":"ria"}]})
# and 구문: user_id가 3보다 크거나 같으면서 and name이 ria인 자료 찾아줘
# 둘다 참이면 참, 하나라도 거짓이면 거짓(거짓이면 안나옴)
> db.class.find({ $or: [{ "user_id": { "$gte":6 } }, { "name": "ria" }] })
# or 구문: user_id가 6보다 크거나 같고 or name이 ria인 자료 찾아줘
# 하나라도 참이면 참, 둘다 거짓이면 거짓
> db.class.find().sort({"user_id":1})
# 1이면 오름차순(1,2,3...)
# -1이면 내림차순(4,3,2,1...)
> db.class.find().sort({"name":1})
# 문자열도 1과 -1로 오름차순, 내림차순 가능
> db.class.find().limit(3)
# 3개만 보여줭
> db.class.find().sort({"name":1}).limit(2)
# sort랑 limit 같이 쓸수도있어
> db.class.find({},{_id:0,"user_id":1})
# 0은 나오게하지않을 필드, 1은 나오게할 필드
あ….sql.. nosqlは捨てる...ああおもしろいおもしろい...呪文を暗唱して…^^💪
Reference
この問題について(TIL(mongodb+CRUD+@)), 我々は、より多くの情報をここで見つけました https://velog.io/@majaeh43/TIL12.14テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol