mongodb Web サイト
https://www.mongodb.com/try/download/community に入り、プルダウンして確認します。
mongodb の操作
1. 環境変数の設定 グローバルにアクセスできるように、コンピュータの構成環境変数 D:\mono\bin\bin を入力します。
目次
「cmd」と入力し、コマンド プロンプト ウィンドウを開き、「mongo」と入力して、データベースに入ります。
前の手順でデータベースを削除すると、生徒データベースがなくなるので、再度作成して以下の操作を完了します。
1 データベースに接続する
「cmd」と入力し、コマンド プロンプトウィンドウを開き、「mongo」と入力して、データベースに入ります。
mongo
2 データベースを作成する
操作ステートメント:
use DATABASE_NAME
DATABASE_NAME はデータベースの名前です。データベースが存在する場合はデータベースに切り替え、データベースが存在しない場合はデータベースを作成します。
3 データベースを見る
操作ステートメント:
show dbs
このコマンドは、どのデータベースが使用可能であるかを確認できます。ただし、作成したばかりの学生データベースは表示されません。表示するには、学生データベースにデータを挿入する必要があるためです。
db.student.insert({"_id":"001"})
知らせ:
MongoDB でコレクションの名前を変更するには、renameCollection() を使用します。ドキュメントでコレクションを作成しましょう -
db.student.renameCollection("demo");
現在のデータベースを表示するには、操作ステートメントは次のようになります。
db
データベース内の統計情報、操作文:
db.stats
4 データベースを削除する
db.dropDatabase()
5 コレクションの作成・削除・表示
前の手順でデータベースを削除すると、生徒データベースがなくなるので、再度作成して以下の操作を完了します。
リレーショナル データベースには、データベース、データ テーブル、およびテーブル内のデータの各行があります。mongodb は非リレーショナル データベースであり、データベース、コレクション、ドキュメントがあり、リレーショナル タイプのデータベース、データ テーブル、行ごとのデータに対応します。mongodb では、ドキュメントはコレクションを形成し、コレクションはデータベースを形成します。
操作コマンド:
db.createCollection(name, options)
name: 作成するコレクションの名前
options: オプションのパラメータ、メモリ サイズとインデックスに関するオプションを指定します
コレクションを削除するには、操作ステートメントは次のようになります。
db.name.drop()
name: 削除するコレクションの名前
drop() メソッドは、選択したコレクションが正常に削除された場合は true を返し、それ以外の場合は false を返します。
データベースの下のコレクションを表示する操作ステートメント:
show collections
MongoDB では、コレクションを作成する必要はありません。MongoDB は、ドキュメントを挿入するとコレクションを自動的に作成します。
6 文書を挿入する
操作ステートメント:
//方法1
db.COllECTION_NAME.insert(document)
//方法2
db.COLLECTION_NAME.save(document)
ドキュメントのデータ構造は基本的に JSON と同じです。コレクションに保存されるすべてのデータは BSON 形式です。
BSON は JSON と同様のバイナリ保存形式であり、Binary JSON の略です。
1. save(): _id 主キーが存在する場合はデータを更新し、存在しない場合はデータを挿入します。このメソッドは新しいバージョンでは廃止されており、代わりに db.collection.insertOne() または db.collection.replaceOne() を使用できます。
2. insert(): 挿入されたデータの主キーがすでに存在する場合、org.springframework.dao.DuplicateKeyException がスローされ、主キーが重複していることを通知し、現在のデータは保存されません。、
バージョン 3.2 以降では、ドキュメントの挿入に次の構文を使用できます。
db.collection.insertOne():向指定集合中插入一条文档数据
db.collection.insertMany():向指定集合中插入多条文档数据
例: 単一行のデータを挿入する
# 首先输入以下语句
var document = db.collection.insertOne({ "a": 2 })
# 敲击回车后输入以下语句
document
例: 複数行のデータの挿入
# 首先输入以下语句
var res = db.collection.insertMany([{ "b": 3 },{ "c": 4 }])
# 敲击回车后输入以下语句
res
一度に複数のデータを挿入します:
(1) 最初に配列を作成します
(2) データを配列に入れます
(3) コレクションに 1 回挿入します
例: 複数のステートメントを一度に挿入する
var arr = [];
for (var i = 1; i <= 200; i++) {
arr.push({ num: i });
}
db.numbers.insert(arr);
7 ドキュメントの更新
MongoDB は、update() メソッドと save() メソッドを使用して、コレクション内のドキュメントを更新します。次に、2 つの機能の応用とその違いについて詳しく紹介します。
1. update() メソッド: 既存のドキュメントを更新するために使用されます。構文形式は次のとおりです。
db.collectio_name.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
query: 更新のクエリ条件。SQL 更新クエリの where と同様です。
update: 更新オブジェクトと一部の更新演算子 ($、$inc... など) などは、SQL 更新クエリでのセット後の upsert として理解することもできます。オプション。このパラメーターは、更新がない場合にそれを意味します
。レコード、objNew を挿入するかどうか。true は挿入を意味します。デフォルトは false、挿入しません。
multi: オプション、mongodb のデフォルトは false で、見つかった最初のレコードのみを更新します。このパラメータが true の場合、条件に従って見つかった複数のレコードがすべて更新されます。
writeConcern: オプション。スローされる例外のレベル。
db.col.insert({
title: 'MongoDB数据库',
description: 'MongoDB 是一个 Nosql 数据库',
by: '青阳子',
url: 'http://www.baidu.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})
update() メソッドでタイトルを更新します。
db.col.update({"title":"MongoDB数据库"},{$set:{"title":"MongoDB我喜爱的数据库"}})
上記のステートメントは、最初に見つかったドキュメントのみを変更します。複数の同一のドキュメントを変更する場合は、multi パラメーターを true に設定する必要があります。
db.col.update({"title":"MongoDB数据库"},{$set:{"title":"MongoDB我喜爱的数据库"}},{multi:true})
2. save() メソッド: 既存のドキュメントを受信ドキュメントで置き換え、_id 主キーが存在する場合は更新し、存在しない場合は挿入します。構文形式は次のとおりです。
db.collection_name.save(
<document>,
{
writeConcern: <document>
}
)
パラメータの説明:
document: ドキュメントデータ。
writeConcern: オプション。スローされる例外のレベル。
例: ドキュメント データを _id 56064f89ade2f21f36b03136 に置き換えます。
db.col.save({
"_id": ObjectId("56064f89ade2f21f36b03136"),
"title": "MongoDB",
"description": "MongoDB 是一个 Nosql 数据库",
"by": "青阳",
"url": "http://www.qingyangzi.com",
"tags": [
"mongodb",
"NoSQL"
],
"likes": 110
})
8 クエリ文書
操作ステートメント:
db.collection_name.find(query, projection)
query: オプション。クエリ演算子を使用してクエリ条件を指定します。
projection: オプション。射影演算子を使用して、返されるキーを指定します。クエリを実行すると、ドキュメント内のすべてのキー値が返されます。このパラメータを省略するだけです (デフォルトは省略)。
db.col.find()
データを読みやすい方法で読み取る必要がある場合は、 pretty() メソッドを使用できます。構文は次のとおりです。
db.col.find().pretty()
3. MongoDB OR 条件
MongoDB OR 条件ステートメントではキーワード $or を使用し、構文形式は次のとおりです。
db.col.find(
{
'$or': [
{ key1: value1 }, { key2: value2 }
]
}).pretty()
例えば:
db.col.find({'$or':[{"by":"青阳子"},{"title": "MongoDB"}]}).pretty()
4. AND と OR の組み合わせ
db.col.find({"likes": {$gt:50}, $or: [{"by": "青阳子"},{"title": "MongoDB"}]}).pretty()
5. ファジークエリ
1. タイトルに「Mon」という単語が含まれるドキュメントをクエリします。
db.col.find({title:/Mon/})
2. タイトルフィールドが「jiao」で始まるドキュメントをクエリします。
db.col.find({title:/^Mon/})
3. タイトルフィールドが「teach」という単語で終わる文書をクエリします。
db.col.find({title:/教$/})
9 文書を削除する
MongoDBのremove()関数は、コレクションからデータを削除するために使用されます。実行条件が正しいかどうかを判断するために、remove() 関数を実行する前に find() コマンドを実行することを習慣にしてください。構文は次のとおりです。
db.collection_name.remove(
<query>,
<justOne>)
}
query : (オプション) 削除されたドキュメントの基準。
justOne : (オプション) true または 1 に設定すると、1 つのドキュメントのみが削除されます。設定しない場合、またはデフォルト値の false を使用すると、条件に一致するすべてのドキュメントが削除されます。
db.col.remove({'title':'MongoDB数据库'})
最初に見つかったレコードのみを削除したい場合は、以下に示すように justOne を 1 に設定します。
db.collection_name.remove(删除条件,1)
すべてのデータを削除したい場合は、次の方法を使用できます。
db.col.remove({})
10 MongoDB データ収集のエクスポートとインポート
エクスポート (mongoexport)
データのエクスポート コマンド: mongoexport -h dbhost -d dbname -c collectionName -o Output
-h : データベース アドレス、MongoDB サーバーが配置されている IP およびポート (localhost:27017 など)
-d : 使用するデータベース インスタンス (test など) を指定します。
-c は、エクスポートするコレクション (c1 など) を指定します。
-o は、エクスポートするファイルの名前を指定します (例: E:/wmx/mongoDump/c1.json)。これはディレクトリではなくファイルであることに注意してください。ディレクトリが存在しない場合は、一緒に作成されます。
インストールされた MongoDB ディレクトリの bin ディレクトリにある mongoexport も使用します。exe および mongoimport.exe
以下に示すように、mongoexport -h localhost:27017 -d mydb1 -c c1 -o E:/wmx/mongoDump/c1.json は、データベース mydb1 の下のコレクション c1 を E:/wmx/mongoDump/c1.json ファイルにエクスポートします。 , 保存ファイルにはtxt、xls、docsなどさまざまな形式があります。
C:\Users\Administrator>mongoexport -h localhost:27017 -d manager -c users -o D:/json/users.json
2018-09-12T16:42:07.297+0800 connected to: localhost:27017
2018-09-12T16:42:07.379+0800 exported 100 records
C:\Users\Administrator>mongoexport -h localhost:27017 -d manager -c users -o D:/json/users.txt
2018-09-12T16:42:58.225+0800 connected to: localhost:27017
2018-09-12T16:42:58.311+0800 exported 100 records
C:\Users\Administrator>
データのエクスポートに成功しました。
インポート (mongoimport)
データのインポート コマンド: mongoimport -h dbhost -d dbname -c collectionname ファイル アドレス...
-h : データベース アドレス、MongoDB サーバーが配置されている IP およびポート (localhost:27017 など)
-d: 使用するライブラリを指定し、使用するデータベース インスタンス (テストなど) を指定します。
-c : インポートするコレクション (c1、c2 など) を指定します。これはエクスポートと矛盾する可能性があります。カスタマイズするだけでよく、コレクションが存在しない場合は直接作成します。
mongoimport -h localhost:27017 -d stu_info -c collection D:/json/users.json