ホームページ  >  記事  >  データベース  >  MongoDB の一般的な操作の詳細な紹介

MongoDB の一般的な操作の詳細な紹介

零下一度
零下一度オリジナル
2017-07-03 16:40:451183ブラウズ

MongoDB は C++ 言語で書かれており、分散ファイル ストレージに基づいたオープンソース データベース システムです。高負荷状況では、ノードを追加することでサーバーのパフォーマンスを確保できます。 MongoDB は、WEB アプリケーション向けにスケーラブルで高性能なデータ ストレージ ソリューションを提供することを目指しています。

1. 追加、削除、変更、確認

現在のデータベース内のすべてのコレクションを表示します

show collections 或使用
show tables

コレクションを作成するには、明示的な作成と暗黙的な作成の 2 つの方法があります


显示创建可以使用命令 db.createCollection(“集合名称")
隐式创建可以使用命令 db.集合名称.insert({}),
指创建集合并同时向集合中插入数据,
例如:db.customer.insert({name:”jack”})

ドキュメントをコレクションに追加します


コマンド db.collectionname.insert({}) を使用します。例:


db.user1.insert({name:”jack”,age:20})

コレクション内のドキュメントを削除します



使用命令 db.集合名称.remove({删除条件}),
不加删除条件为删除集合中的所有文档:
例如,删除c1集合中的所有文档 db.c1.remove() 
删除c1集合中name为user1的文档 db.c1.remove({name:”user1”})

コレクション内のドキュメントをクエリします



db.集合名称.find({条件})
或者使用 
db.集合名称.findOne() 查询第一个文档

コレクションDocument内のドキュメントをクエリし、いくつかの特定のキー値を返します

クエリ
に加えて、MongoDBはいくつかの追加パラメータオプションもサポートしています。 特定のフィールド値のみを返したい場合:
年齢フィールドを除くすべてのフィールドを返す
db.user.find({},{age:0});

コメントを除く tags=tennis のすべての列を返す

db .posts.find({tags:'tennis'},{comments:0});

userid=16 の名前フィールドを返します

db.user.find({userid:16},{name:1}) ;
{"_id":16,"name":"user16"}

x=john

db.things.find({x:"john"},{z:1});のすべてのzフィールドを返します

条件式 (d2714fbb0e49a95306c2048bc19e4f2b、>=、!=) を使用して、コレクション内のドキュメントをクエリします

//より大きい: field value
db.collection.find({field:{$ gt:value}});

//以下: フィールド db.collection.find({field:{$lt:value}});
// 以上: フィールド >= value

db .collection.find({field:{$gte:value}});

//以下: field db.collection.find({field:{$lte:value) }});
//以下に等しくない: field != value

db.collection.find({field:{$ne:value}});

コレクション内のドキュメントをクエリ、統計情報 (カウント)、並べ替え ( sort)、ページング(skip、limit)



db.customer.count();
db.customer.find().count();
db.customer.find({age:{$lt:5}}).count();
db.customer.find().sort({age:1}); 降序-1
db.customer.find().skip(2).limit(3);
db.customer.find().sort({age:-1}).skip(2).limit(3);
db.customer.find().sort({age:-1}).skip(2).limit(3).count();
db.customer.find().sort({age:-1}).skip(2).limit(3).count(0);
db.customer.find().sort({age:-1}).skip(2).limit(3).count(1);

コレクション内のドキュメントをクエリします

$allは主に、クエリ条件のいずれかが含まれていない限り、配列内の包含関係をクエリするために使用されます。

$in は返されません。

リレーショナル データベースと同様です。

$nin の IN は、$in

$or の逆であり、リレーショナル データベースの OR に相当し、

For の関係を示します。たとえば、user2 または age 3 という名前のドキュメントをクエリするには、コマンドは次のようになります:

db .customer.find({$or:[{name:”user2”},{age:3}]})

$norこれは、名前が user2 ではなく、年齢が 3 ドキュメントではないかどうかをクエリするなど、条件に基づいて特定のデータを除外することを意味します。コマンドは次のとおりです:

db.customer.find({$nor:[{name:”user2”}, {age:3}]})


$exists、コレクション内の特定のキーを持つドキュメントをクエリする場合、または特定のキーを持つドキュメントが存在しない場合に使用されます。たとえば、顧客内のキーという名前を持つすべてのドキュメントをクエリするために使用されます。コレクションでは、

db.customer.find({name:{$exists:1}}) を使用できます

$exists:1 は true、つまり存在することを意味します
$exists:0 は false、つまり存在しないことを意味します

カーソル

コレクション内のドキュメントを更新します

構文: db.collection.update(criteria,objNew,upsert,multi)

パラメータの説明:
criteria:
クエリ条件のオブジェクトを設定するために使用されます
objNew: 更新を設定するために使用されるオブジェクトcontent upsert: レコードが既に存在する場合は更新し、そうでない場合は新しいレコードを追加します。値は 0 または 1 です。
multi: 条件を満たすレコードが複数ある場合、すべて更新するかどうか、値は 0 または 1 です

注: デフォルトでは、最初の条件を満たすレコードのみが更新されます

通常、最後の 2 つのパラメーターはそれぞれ 0,1、つまり:

db.collection.update(criteria,objNew,0,1)

ドキュメントを変更しますコレクション内の user1 を jack:

db.c1.update({name:"user1"},{name:"jack"}) に指定します


$set はキーの値を指定するために使用されます。存在しないので作成します。例:

user1 という名前のドキュメントにアドレスを追加するには、次のコマンドを使用できます:

db.c1.update({name:”user1”},{$set:{address:”bj”}},0,1 )
名前が user1 のドキュメントのアドレスは tj に変更され、他のキーと値のペアは変更されません。 コマンドは
db.c1.update({name:”user1”},{$set) です。 :{address:”tj”}}, 0,1)
$inc を使用して、コレクション内の user1 という名前の年齢に 1 を追加し、他のキーは変更しないままにします。$inc は、指定された値をキーに加算または減算することを意味します。 value
db.c1.update({name:" user1"},{$inc:{age:1}})

$unset は、たとえば、ドキュメント内のアドレス キーを削除するために使用されます。 user1 という名前の場合、次のコマンドを使用できます:
db.c1.update({ name:”user1”},{$unset:{address:1}},0,1)

2. インデックス:

インデックスはクエリを高速化するために使用されます。データベースのインデックスは書籍のインデックスに似ています。インデックスを使用すると、書籍全体に目を通す必要はありませんが、データベースはインデックス内で直接検索できるため、検索速度が数桁速くなります。インデックス内でエントリが見つかると、目的のドキュメントの場所に直接ジャンプできます。

通常のインデックス:
作成: db.collection.ensureIndex({key:1})
インデックスに関する関連情報の表示: db.collection.stats()
インデックスのクエリの使用状況の表示: db.collection.find( { key:value}).explain()
インデックスの削除: db.collection.dropIndex({key:1})
コレクションを削除すると、コレクション内のすべてのインデックスも削除されます

一意のインデックス:
作成: db.collection. ensureIndex({key:1},{unique:true})
インデックスに関する関連情報を表示します: db.collection.stats()
インデックスを使用してクエリを表示します: db.collection.find({key:value})。 Explain()
インデックスの削除: db.collection.dropIndex({key:1})
コレクションを削除すると、コレクション内のすべてのインデックスも削除されます

3. キャップされたコレクション (キャップされたコレクション)

固定コレクションが指すもの事前に作成された固定サイズのコレクションです。

固定コレクション機能: 固定コレクションはリングキューによく似ており、スペースが不足している場合は、新しいドキュメント用のスペースを確保するために最も古いドキュメントが削除されます。一般に、固定コレクションは、操作上の制限をあまり設けずに期限切れの属性を自動的に削除するシナリオに適しています。

固定コレクションを作成する:
db.createCollection(“collectionName”,{capped:true,size:100000,max:100});
sizeはコレクションのサイズをKB単位で指定し、maxはドキュメントの数を指定します

を指定する場合数量に制限がある場合は、サイズも指定する必要があります。削除メカニズムは、容量がいっぱいでない場合にドキュメントの数に基づいてのみ機能します。容量がいっぱいの場合は、容量に基づいて削除メカニズムが機能します。

4. バックアップ (mongodump) とリカバリ (mongorestore)

MongoDB は、MongoDB ダウンロード ディレクトリ内の mongodump.exe および mongorestore.exe ファイル (つまり、mongodb bin 内のコマンド) のバックアップおよびリカバリ機能を提供します。 directory )

次のコマンドを使用してデータをバックアップします:
mongodump -h dbhost -d dbname -o dbdirectory
-h: MongoDB サーバーのアドレス (例: 127.0.0.1) もちろん、ポート番号を指定することもできます。 127.0.0.1:27017
- d: バックアップが必要なデータベース インスタンス (例: test) -o: バックアップ データの保存場所 (例: c:datadump)。 もちろん、このディレクトリは事前に作成する必要があります。バックアップが完了すると、システムはダンプ ディレクトリにテストを自動的に作成します。この
ディレクトリにはデータベース インスタンスのバックアップ データが保存されます。

次のコマンドを使用してデータを復元します:

mongorestore -h dbhost -d dbname -directoryperdb dbdirectory

-h: MongoDB サーバーのアドレス
-d: 復元する必要があるデータベース インスタンス。例: test、もちろん this test2
-directoryperdb: バックアップ データの場所 (例: c:datadumptest

) 5. インポート (mongoimport) とエクスポート (mongoexport) のように、名前はバックアップと同じにすることもできます。データをエクスポートするには、次のコマンドを使用できます:

mongoexport -h dbhost -d dbname -c collectionName -o Outputパラメータの説明:-h データベースアドレス

-d 使用するライブラリを指定します

-c エクスポートするコレクションを指定します
- o エクスポートするファイル名を指定します

例:
mongoexport -h localhost: 27017 -d test -c c4 -o d:/beifeng/c4.txt

データをインポートするには、次のコマンドを使用できます:

mongoimport -h dbhost -d dbname -c collectionname ファイルのアドレス...

パラメータの説明:
-h データベース アドレス

-d 使用するライブラリを指定します

-c インポートするコレクションを指定します
ローカル ファイル アドレス...

例:
mongoimport -h localhost:27017 -d test -c cctv d:/beifeng/c4.txt

以上がMongoDB の一般的な操作の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。