超詳細な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({})

おすすめ

転載: blog.csdn.net/PILIpilipala/article/details/113818320