1、基本的な考え方
MongoDBは、私たちは多くの場合、リレーショナルデータベースを使用するので、あなたにその外観を与えるためにここにいくつかの接続を持って、簡単に類推学習
リレーショナルデータベース | MongoDBの |
---|---|
データベース | データベース |
テーブル | セット |
行 | ファイル |
行 | フィールド |
(1)データベース
MongoDBの単一のインスタンスは、別個の複数のデータベースを収容することができ、異なるデータベースが異なるファイルに入れ
(2)収集
MongoDBのコレクションは、リレーショナルデータベース内のテーブルの概念に類似した文書の集合体であり、
いかなる固定構造を設定せず、セット内のデータ・フォーマットの種類を挿入することができるが、データは、通常、特定の関連性を有しています
(3)ドキュメント
文書は、リレーショナルデータベースの行の概念と同様のキーと値のペアのセットであり、そのデータ構造は基本的に同じであるJSON
文書には、同じフィールドを設定する必要がなく、データフィールドの同じタイプが同一である必要はないが、ドキュメント内のキーと値のペアを注文する必要があります。
図2に示すように、データベース操作
新しいデータベースを作成していないかどうかをテストするには、デフォルトのデータベースにあるMongoDBは、コレクションは、テスト・データベースのデフォルトに保存されます
(1)データベースの作成
use DATABASE_NAME
データベースが存在する場合は、指定されたデータベースに切り替えて、データベースが存在しない場合は、データベースを作成します
たとえば、次のコマンドは、MYDBデータベースを作成します。
> use myDB
switched to db myDB
(2)検討既存のデータベース
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
注意:作成したばかりのデータベースが新しく作成された後にのみ、データベースにデータを挿入する、データベースのリストに表示されない、表示されます。
(3)現在のデータベースを表示します
> db
myDB
(4)現在のデータベースを削除
> db.dropDatabase()
{ "ok" : 1 }
図3に示すように、操作セット
(1)コレクションを作成します
db.createCollection(
COLLECTION_NAME,
{
capped: <boolean>, // 可选,若为 true,则创建固定集合,且此时必须要指定 size 参数
autoIndexId: <boolean>, // 可选,若为 true,则自动在 `_id` 字段创建索引
size: <number>, // 可选,为固定集合指定可以使用的最大空间(以字节计)
max: <number> // 可选,为固定集合指定包含文档的最大数量
}
)
注意:コレクションを作成した後にMongoDBに、再度、文書を挿入、コレクションは本当に作成されます。
たとえば、次のコマンドは、myColコレクションMYDBデータベースを作成します。
> use myDB
switched to db test
> db.createCollection("myCol")
{ "ok" : 1 }
(2)既存のコレクションを見直します
> show collections
myCol
(3)コレクションを削除します
db.COLLECTION_NAME.drop()
たとえば、次のコマンドは、myColコレクションMYDBデータベースを削除します:
> db.myCol.drop()
true
4.ドキュメントアクション
(1)文書に
db.COLLECTION_NAME.insert(document)
注:コレクションがデータベースにない場合、MongoDBは自動的に作成され、文書コレクションに挿入されます
たとえば、次のコマンドを実行すると、文書にMYDBデータベースmyColにコレクションは以下となります。
> use myDB
switched to db myDB
> db.myCol.insert({"name":"MongoDB"})
WriteResult({ "nInserted" : 1 })
(2)クエリ文書
db.COLLECTION_NAME.find(
query, // 可选,指定查询文档的条件
projection // 可选,使用投影操作指定返回的键,默认省略,表示返回文档中所有的键
)
例えば、文書名フィールドを照会します次のコマンドは、MongoDBのに等しいです。
> db.myCol.find({"name":"MongoDB"})
{ "_id" : ObjectId("5c7c069826cb01475e68f64e"), "name" : "MongoDB" }
(3)ドキュメントを更新
db.COLLECTION_NAME.update(
query, // 指定被更新的对象
update, // 指定更新对象
{
upsert: <boolean>, // 可选,指定如果不存在被更新的对象时是否插入更新对象,默认为 false
multi: <boolean>, // 可选,若为 true,则更新所有符合条件的记录,默认为 false
writeConcern: <document> // 可选,指定抛出异常的级别
}
)
たとえば、次のコマンドセットは、データのフィールド名にmyCol MYDBデータベースを更新されます。
> db.myCol.update({"name":"MongoDB"},{$set:{"name":"MySQL"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
(4)文書の削除
db.COLLECTION_NAME.remove(
query, // 指定被删除的对象
{
justOne: <boolean>, // 可选,若为 true,则只删除一个文档,默认为 false
writeConcern: <document> // 可选,定义抛出异常的级别
}
)
たとえば、次のコマンドは、名前フィールドmyColコレクションMYDBデータベースはMySQLのドキュメントに等しい削除させていただきます。
> db.myCol.remove({"name":"MySQL"})
WriteResult({ "nRemoved" : 1 })
5、クエリ
説明 | 演算子 | フォーマット |
---|---|---|
等しいです | {<key>:<value>} |
|
等しくありません | $ません | {<key>:{$ne:<value>}} |
以下 | $のLT | {<key>:{$lt:<value>}} |
以下 | $のLTE | {<key>:{$lte:<value>}} |
より大きい | $のGT | {<key>:{$gt:<value>}} |
以上 | $ GTE | {<key>:{$gte:<value>}} |
そして、条件 | {<key1>:<value1>,<key2>:<value2>} |
|
OR条件 | $または | {$or:[{<key1>:<value1>},{<key2>:<value2>}]} |
正規表現 | {<key>:/<REGULAR_EXPRESSION>/} |
図6に示すように、処理方法
pretty()
この方法は、出力をフォーマットすることができます。
db.COLLECTION_NAME.find().pretty()
limit()
レコードの指定された数の一定数を読み出す方法、NUMBERのために指定されたパラメータの数
db.COLLECTION_NAME.find().limit(NUMBER)
skip()
一定数をスキップするレコードの方法で指定された数、NUMBERのために指定されたパラメータの数
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
sort()
KEYキーを指定するパラメータに応じてソートされたデータをソートする方法であって、
降順が指定されている場合には、指定昇順が、ある場合にVALUEパラメータは、どのような種類のモードを指定-1
db.COLLECTION_NAME.find().sort({KEY:VALUE})
[見て、記事のより多くのMongoDBシリーズを読むのMongoDBの研究ノート ]