MongoDBの研究ノート(b)のCRUD

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の研究ノート ]

おすすめ

転載: www.cnblogs.com/wsmrzx/p/11564282.html