MongoDBの基本操作
1つは、データベースを作成する
use DATABASE_NAME
データベースが存在しない場合はデータベースを作成し、存在しない場合は指定したデータベースに切り替えます。
例:
1。新しく作成されたデータベースはshow dbsを使用して表示できず、表示するには一部のデータを挿入する必要があり
ます。2。MongoDBのデフォルトデータベースはtestです。新しいデータベースを作成していない場合、コレクションは保存されます。テストデータベース内。
2、データベースを削除します
db.dropDatabase()
現在のデータベースを削除します。デフォルトはtestです。dbコマンドを使用して、現在のデータベース名を表示できます。
db:現在のデータベース名を表示します
3、コレクションを作成します
db.createCollection(name, options)
パラメータの説明:
- name:作成するコレクションの名前
- オプション:オプションのパラメータ、メモリサイズとインデックスに関連するオプションを指定します
オプションには、次のパラメーターを指定できます。
フィールド | の種類 | 説明 |
---|---|---|
キャップ付き | ブール値 | (オプション)trueの場合、固定コレクションを作成します。固定コレクションとは、固定サイズのコレクションを指します。最大値に達すると、最も古いドキュメントが自動的にカバーされます。値がtrueの場合、サイズパラメーターを指定する必要があります。 |
autoIndexId | ブール値 | このパラメータは、3.2以降ではサポートされなくなりました。(オプション)trueの場合、_idフィールドにインデックスを自動的に作成します。デフォルトはfalseです。 |
サイズ | 数値 | (オプション)固定セットの最大値、つまりバイト数を指定します。cappedがtrueの場合、このフィールドも指定する必要があります。 |
最大 | 数値 | (オプション)固定コレクションに含まれるドキュメントの最大数を指定します。 |
例:
MongoDBでは、コレクションを作成する必要はありません。いくつかのドキュメントを挿入すると、MongoDBは自動的にコレクションを作成します。
> db.mycol2.insert({
"name" : "德云"})
> show collections
mycol2
第四に、コレクションを削除します
db.集合名.drop()
選択したコレクションが正常に削除された場合、drop()メソッドはtrueを返し、そうでない場合はfalseを返します。
5、ドキュメントを挿入します
db.COLLECTION_NAME.insert(document)
または
db.COLLECTION_NAME.save(document)
ドキュメントのデータ構造は基本的にJSONと同じです。コレクションに保存されているすべてのデータはBSON形式です。
BSONは、BinaryJSONの略であるJSONに似たバイナリストレージ形式です。
- save():_ id主キーが存在する場合はデータを更新し、存在しない場合はデータを挿入します。このメソッドは新しいバージョンでは廃止されています。代わりにdb.collection.insertOne()またはdb.collection.replaceOne()を使用できます。
- insert():挿入されたデータの主キーがすでに存在する場合、
org.springframework.dao.DuplicateKeyExceptionがスローされ、主キーが複製され、現在のデータが保存されないことを確認します。
1.バージョン3.2以降、次の構文を使用してドキュメントを挿入できます。
- db.collection.insertOne():指定されたコレクションにドキュメントデータの一部を挿入します
- db.collection.insertMany():指定されたコレクションに複数のドキュメントデータを挿入します
# 插入单条数据
> var document = db.collection.insertOne({
"a": 3})
> document
{
"acknowledged" : true,
"insertedId" : ObjectId("571a218011a82a1d94c02333")
}
# 插入多条数据
> var res = db.collection.insertMany([{
"b": 3}, {
'c': 4}])
> res
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("571a22a911a82a1d94c02337"),
ObjectId("571a22a911a82a1d94c02338")
]}
2.複数のデータを一度に挿入し
ます(1)最初に配列を作成します
(2)データを配列に配置します
(3)コレクションに1回挿入します
var arr = [];
for(var i=1 ; i<=20000 ; i++){
arr.push({num:i});
}
db.numbers.insert(arr);
6、ドキュメントを更新します
MongoDBは、update()メソッドとsave()メソッドを使用して、コレクション内のドキュメントを更新します。次に、
2つの関数のアプリケーションとそれらの違いを詳しく見てみましょう。
1. update()メソッド
既存のドキュメントを更新するために使用されます。構文形式は次のとおりです。
db.collectio_name.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
})
パラメータの説明:
- query:更新のクエリ条件。SQL更新クエリのどこにあるかと同様です。
- 更新:オブジェクトといくつかの新しい演算子(例:、、、 inc ...)などは、SQL更新クエリの次のセットとしても理解できます。
- upsert:オプション。このパラメーターは、更新レコードがない場合にobjNewを挿入するかどうかを意味します。trueは挿入、デフォルトはfalse、挿入ではありません
- multi:オプション、mongodbはデフォルトでfalseに設定され、最初に見つかったレコードのみを更新します。このパラメーターがtrueの場合、条件に従って見つかった複数のレコードがすべて更新されます。
- writeConcern:オプションで、スローされる例外のレベル。
>db.col.insert({
title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: '德云学院',
url: 'http://www.deyun.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100})
update()メソッドを使用してタイトル(title)を更新します。
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" : "Runoob",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"NoSQL"
],
"likes" : 110})
7、クエリドキュメント
db.collection_name.find(query, projection)
- クエリ:オプション、クエリ演算子を使用してクエリ条件を指定します
- 射影:オプションで、射影演算子を使用してリターンキーを指定します。クエリを実行すると、ドキュメント内のすべてのキー値が返されます。このパラメータを省略してください(デフォルトでは省略されています)。
読み取り可能な方法でデータを読み取る必要がある場合は、pretty()メソッドを使用できます。構文形式は次のとおりです。
db.col.find().pretty()
pretty()
すべてのドキュメントをフォーマットされた方法で表示する方法
1.MongoDB条件演算子
$ gt --------より大きい>
$ gte --------- gt等しい> =
$ lt --------より小さい<
$ lte ------- --lt equal <=
$ ne ----------- not equal!=
$ eq -------- equal
2、MongoDBおよびRDBMSWhereステートメントの比較
オペレーティング | フォーマット | 例 | RDBMSの同様のステートメント |
---|---|---|---|
等しい | {<key>:<value>} |
db.col.find({"by":"星星点灯"}).pretty() |
where by = 'ルーキーチュートリアル |
未満 | {<key>:{$lt:<value>}} |
db.col.find({"likes":{$lt:50}}).pretty() |
50未満が好きな場所 |
以下 | {<key>:{$lte:<value>}} |
db.col.find({"likes":{$lte:50}}).pretty() |
好きな場所<= 50 |
以上 | {<key>:{$gt:<value>}} |
db.col.find({"likes":{$gt:50}}).pretty() |
50以上が好きなところ |
以上 | {<key>:{$gte:<value>}} |
db.col.find({"likes":{$gte:50}}).pretty() |
好きな場所> = 50 |
等しくない | {<key>:{$ne:<value>}} |
db.col.find({"likes":{$ne:50}}).pretty() |
好きなところ!= 50 |
3. MongoDBAND条件
MongoDBのfind()メソッドは複数のキーを渡すことができ、各キーはコンマで区切られます。これは通常のSQLのAND条件です。構文形式は次のとおりです。
db.col.find({key1:value1, key2:value2}).pretty()
または
db.col.find({‘$and’:[{key1:value1},{key2:value2}]}).pretty()
例えば:
db.col.find({
"by":"星星点灯", "title":"MongoDB 教程"}).pretty()
WHEREステートメントと同様:WHERE by = 'スターライト' AND title = 'MongoDBチュートリアル'
4、MongoDBまたは条件
MongoDBOR条件ステートメントはキーワード$ orを使用し、構文形式は次のとおりです。
db.col.find(
{
‘$or’: [
{key1: value1}, {key2:value2}
]
}).pretty()
例えば:
db.col.find({‘$or’:[{
"by":"星星"},{
"title": "MongoDB
5.ANDとORの併用
db.col.find({"likes": {$gt:50}, $or: [{"by": "星星点灯"},{"title": "MongoDB 教程"}]}).pretty()
6.ファジークエリ
タイトルに「教」という単語が含まれているドキュメントを検索します。
db.col.find({title:/教/})
タイトルフィールドが「教」という単語で始まるドキュメントをクエリします。
db.col.find({title:/^教/})
タイトルフィールドが「教」という単語で終わるドキュメントをクエリします。
db.col.find({title:/教$/})
8.ドキュメントを削除します
MongoDB remove()関数は、コレクション内のデータを削除するために使用されます。remove()関数を実行する前にfind()コマンドを実行して、実行条件が正しいかどうかを判断することをお勧めします。構文は次のとおりです。
db.collection_name.remove(
<query>,
<justOne>)
}
パラメータの説明:
- クエリ:(オプション)削除されたドキュメントの状態。
- justOne :(オプション)trueまたは1に設定すると、1つのドキュメントのみが削除されます。このパラメーターが設定されていないか、デフォルト値が
falseの場合、条件に一致するすべてのドキュメントが削除されます。
例えば:
db.col.remove({'title': 'MongoDBチュートリアル'})
最初に見つかったレコードのみを削除する場合は、次に示すように、justOneを1に設定できます。
db.collection_name.remove(条件の削除、1)
すべてのデータを削除する場合は、次の方法を使用できます。
db.col.remove({})