モンゴルDB
7092 ワード
NoSQl
ATLAS
アトラスを使います.
アトラスの構造は以下の通りです.
インスタンス->レジストリ->単一クラスタ->クラスタ
例:モンゴルDBにデータベースを作成します.ローカルまたはクラウド上で特定のソフトウェアを実行するスタンドアロン
replicaset:各インスタンスのコピー.
≪クラスタ|Cluster|ldap≫:データを格納するサーバー・グループ
MongoDb Document
注意:
mongoDB Doc.
まずMongoDBはBSON形式でデータを格納する.
{
field1: value1,
field2: value2,
field3: value3,
...
fieldN: valueN
}
valueは、BSON
に対応するすべてのdata tpeeを含むことができる.(以下に示す)var mydoc = {
_id: ObjectId("5099803df3f4948bd2f98391"),
name: { first: "Alan", last: "Turing" },
birth: new Date('Jun 23, 1912'),
death: new Date('Jun 07, 1954'),
contribs: [ "Turing machine", "Turing test", "Turingery" ],
views : NumberLong(1250000)
}
BSONが何なのかわからないただし、JSONよりも高速でメモリ使用効率が高く、JSONに対応しない各種データ型を格納することができます.△コンピューター言語に近い.
Importing & Exporting
このコマンドを端末で使用する場合は、Database-Tools-on-macOSをインストールする必要があります.
分類JSONSONBSONImport
mongoimport
mongoexport
Export mongorestore
mongodump
CRUD
Collection Methods
CREATE
db.컬렉션이름.insert()
_id
の値はほぼ増加した.パラメータをinsertに配置する場合は、
bulk insert
を使用します.に注意
存在しないコレクションに挿入すると、新しいセットが作成され、展開されます.
db.컬렉션이름.find()
READ
db.컬렉션이름.find(query, options)
key:value
形で対象に入れればいいようです.(演算子を使用して多様なコンテンツを記述できるように見えます.)cursor.pretty()
、客体形態できれいに見えます.ちなみにcursorはfindメソッドを実行して得られた結果の集合である.db.컬렉션이름.find().count()
db.컬렉션이름.findOne()
UPDATE
db.컬렉션이름.updateOne()
db.collection.updateMany(filter, update, options
$inc演算子を使用して更新
△本当にいろいろな演算子があります.
db.zips.updateMany({"city":"ALPINE"},{"$inc":{"pop":10}})
に注意
どちらも存在しないフィールドに値を追加する場合は、フィールドを作成して追加します.
push
db.grades.updateOne(
{"student_id" : 250, "class_id" : 339},
{"$push":{"scores":{"type" : "extra credit", "score":100}}}
)
Jspushのように配列にデータを入れます.DELETE
db.컬렉션이름.deleteOne()
db.컬렉션이름.deleteMany()
すべての一致を削除db.컬렉션이름.drop()
コレクション自体を削除演算子
比較演算子
論理演算子
ひょうじえんざんし
{ $expr : { expression } }
{"$expr":{"$eq":["$start station id","$end station id"]}}
こう書いてあるそうです
特に、上記のフィールド値の前の$
は、そのフィールドの値を表す.
配列演算子
ドキュメントに配列が存在するとします.配列に特定の値が含まれているデータのみを検索します.{"amenities":["Shampoo"]}
このクエリは、amenities
フィールドのShampoo
を検索しません.amenities
フィールドの値が["Shampoo"]
のドキュメントを探します.
このように混んでこそ、シャンプーを含む化粧品を見つけることができます.{"amenities":{"$all":["Shampoo"]}}
PROJECTION
db.listingsAndRevies.find({"amenities":{"$size":20,
"$all":["internet","wifi","kitcen","heating",...]}},{"price":1,"address":1}).pretty()
このようにしてクエリが記述され、カーソルに含まれるのはprice
およびaddress
フィールドのみである.(0の場合は除外)
$elemMatch(projection)
以下のように記述すると、$elemMatch
として指定された配列フィールドがドキュメントに存在し、条件に合致する要素がある場合にのみ、このフィールドが結果に含まれます.db.grades.find({"class_id":431},{"scores":{"$elemMatch":{"score":{"$gt":85}}}})
$elemMatch(query)
上のelemMatchをfindのquery条件で使うと、
この条件を満たすドキュメントのすべてのフィールドをロードします.
Reference
この問題について(モンゴルDB), 我々は、より多くの情報をここで見つけました
https://velog.io/@vagabondms/몽고-DB
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
db.listingsAndRevies.find({"amenities":{"$size":20,
"$all":["internet","wifi","kitcen","heating",...]}},{"price":1,"address":1}).pretty()
db.grades.find({"class_id":431},{"scores":{"$elemMatch":{"score":{"$gt":85}}}})
Reference
この問題について(モンゴルDB), 我々は、より多くの情報をここで見つけました https://velog.io/@vagabondms/몽고-DBテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol