ホームページ >データベース >mysql チュートリアル >MongoDB の一般的な操作の詳細な紹介
MongoDB は C++ 言語で書かれており、分散ファイル ストレージに基づいたオープンソース データベース システムです。高負荷状況では、ノードを追加することでサーバーのパフォーマンスを確保できます。 MongoDB は、WEB アプリケーション向けにスケーラブルで高性能なデータ ストレージ ソリューションを提供することを目指しています。
1. 追加、削除、変更、確認
現在のデータベース内のすべてのコレクションを表示します
show collections 或使用 show tables
コレクションを作成するには、明示的な作成と暗黙的な作成の 2 つの方法があります
显示创建可以使用命令 db.createCollection(“集合名称") 隐式创建可以使用命令 db.集合名称.insert({}), 指创建集合并同时向集合中插入数据, 例如:db.customer.insert({name:”jack”})ドキュメントをコレクションに追加します
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});
db .posts.find({tags:'tennis'},{comments:0});
db.user.find({userid:16},{name:1}) ;
{"_id":16,"name":"user16"}
db.things.find({x:"john"},{z:1});のすべてのzフィールドを返します
//より大きい: field value
db.collection.find({field:{$ gt:value}});
db .collection.find({field:{$gte:value}});
db.collection.find({field:{$ne:value}});
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 は返されません。
$or の逆であり、リレーショナル データベースの OR に相当し、
For の関係を示します。たとえば、user2 または age 3 という名前のドキュメントをクエリするには、コマンドは次のようになります:db .customer.find({$or:[{name:”user2”},{age:3}]})
$norこれは、名前が user2 ではなく、年齢が 3 ドキュメントではないかどうかをクエリするなど、条件に基づいて特定のデータを除外することを意味します。コマンドは次のとおりです:
$exists、コレクション内の特定のキーを持つドキュメントをクエリする場合、または特定のキーを持つドキュメントが存在しない場合に使用されます。たとえば、顧客内のキーという名前を持つすべてのドキュメントをクエリするために使用されます。コレクションでは、
$exists:1 は true、つまり存在することを意味します
$exists:0 は false、つまり存在しないことを意味します
コレクション内のドキュメントを更新します
構文: db.collection.update(criteria,objNew,upsert,multi)パラメータの説明:
criteria:
クエリ条件のオブジェクトを設定するために使用されます
objNew: 更新を設定するために使用されるオブジェクトcontent upsert: レコードが既に存在する場合は更新し、そうでない場合は新しいレコードを追加します。値は 0 または 1 です。
multi: 条件を満たすレコードが複数ある場合、すべて更新するかどうか、値は 0 または 1 です
注: デフォルトでは、最初の条件を満たすレコードのみが更新されます
db.collection.update(criteria,objNew,0,1)
ドキュメントを変更しますコレクション内の user1 を jack:
$set はキーの値を指定するために使用されます。存在しないので作成します。例:
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)。 もちろん、このディレクトリは事前に作成する必要があります。バックアップが完了すると、システムはダンプ ディレクトリにテストを自動的に作成します。この
ディレクトリにはデータベース インスタンスのバックアップ データが保存されます。
次のコマンドを使用してデータを復元します:
-h: MongoDB サーバーのアドレス
-d: 復元する必要があるデータベース インスタンス。例: test、もちろん this test2
-directoryperdb: バックアップ データの場所 (例: c:datadumptest
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
データをインポートするには、次のコマンドを使用できます:
パラメータの説明:
-h データベース アドレス
-c インポートするコレクションを指定します
ローカル ファイル アドレス...
例:
mongoimport -h localhost:27017 -d test -c cctv d:/beifeng/c4.txt
以上がMongoDB の一般的な操作の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。