1. ホーム
  2. Database

MongoDBコマンド

2022-02-11 08:45:17

    I. MongoDB入門

MongoDBについて簡単に紹介します。
従来のリレーショナルデータベース(mysqlなど)は、一般にデータベース、テーブル、レコードという3つの階層的な概念で構成されています。
MongoDBは、データベース、コレクション、ドキュメントの3つのレベルで構成されています。
MongoDBは安定している
MongoDBはインデックスをサポートしており、これはメモリ上に配置され、ランダムな読み取りと書き込みのパフォーマンスを向上させることができます。インデックスが完全にメモリ上にない場合、ランダムな読み書きが比較的多くなると、ディスクスワップが頻繁に発生し、MongoDBのパフォーマンスは劇的に低下することになる
MongoDBはスペース・フォー・タイム原則に代表されるタイプなので、多くのスペースを占有しています。そうすると、普通のデータベースよりも少しディスクスペースを浪費してしまいます

    II. MongoDBのデータベース操作

mongoのヘルプドキュメントを見る

mongo -h

    1

2. ログイン

mongo -umiaobt -p --authenticationDatabase
mongo -umiaobt -p331sharp --authenticationDatabase

    1
    2

(以下の操作を行うには、データベースへのログインが必要です。)

// ライブラリ操作
3. 全ライブラリを問い合わせる

dbsを表示します。 

    1

4. ライブラリ内の接続を問い合わせる

コレクションを表示する。

    1

5. データベースの作成/データベースの切り替え

test1 を使用します。

    1

ライブラリtest1が利用できない場合は

6. データベースの削除

db.dropDatabase()を実行します。

    1

7. データベース名の取得

db.getName()を実行します。

    1

8. データベースの状態を取得する

db.stats()を実行します。

    1

9. 現在のDBバージョン

db.version()を使用します。 

    1

10. 現在のdbのリンク先マシンアドレスを表示する

db.getMongo()です。

    1

11. 指定したホストからデータベースをクローンする

db.cloneDatabase("127.0.0.1") を実行します。

    1

12. 指定されたマシンの指定されたデータベースデータをデータベースにコピーする

db.copyDatabase("yhb", "test1", "127.0.0.1") を使用します。 

    1

13. データベースを修正する

db.repairDatabase()を実行します。 

    1

MongoDBで頻繁にデータの追加、削除、変更が行われる場合、レコードが変わると、例えばデータのサイズが変わると、この時に何らかのデータの断片化が発生しやすく、断片化が引き金となり発生する結果
一つはインデックスの性能に問題があること、もう一つは一定の時間が経つと不可解に占有容量が増えることで、定期的にデータベースを修正し、定期的にインデックスを作り直すことが重要で、これによりMongoDBの安定性と効率性を向上させることができます

    三、MongoDBの収集操作

1. 集約されたコレクション(テーブル)を作成する

//指定されたデータベースのサイズのサイズは、100文書の最大ストレージは、フル、それはmongodbは古いドキュメントを削除されます。
db.createCollection("human",{"size":1024,capped:true,max:100}) を使用します。
db.createCollection("people") を使用します。

    1
    2
    3

2. コレクションステータスの表示

db.people.stats()を参照してください。

    1

3. 指定されたセットを取得する

db.getCollection("human") を使用します。 

    1

4. 現在のdbにあるすべてのコレクションを取得

db.getCollectionNames()を実行します。

    1

ショーコレクションと同様

5. 現在の db のすべての集約インデックスの状態を表示する

db.printCollectionStats()を実行します。 

    1

    IV. MongoBDのユーザー操作

1. ユーザーを追加する

db.createUser({user:"zs",pwd:"111",roles:["read"]})

    1

ユーザーの追加、パスワードの設定、読み取り専用かどうかの設定

2、データベース認証、セキュリティモード
db.auth("zs", "111");

3. 現在のすべてのユーザー、ロールを表示する

人を表示する
役割を表示します。

4. ユーザーの削除

db.removeUser("zs");  

    1

V. コレクションクエリの集計

1. 全レコードを問い合わせる

    引用ブロックの内容

db.people.find()を実行します。 
select* from people と同じ意味です。

    1
    2

2. デクラッタリング後の現在の集約されたコレクションのカラムの重複データを問い合わせる

db.people.distingu("name");  
select distict name from people と同じ意味です。

    1
    2

3. 年齢=18のレコードを検索する

db.people.find({"age": 18});  
以下と同じです: select * from people where age = 18;

    1
    2

4. 年齢が18歳のレコードを問い合わせる

db.people.find({age: {$gt: 18}});  
select * from people where age > 18 と同じ意味です。

    1
    2

5. 年齢が < 18 のレコードのクエリ

db.people.find({age: {$lt: 18}});  
select * from people where age <18 と同じ意味です。

    1
    2

6. 年齢が >= 18 のレコードを検索する

db.people.find({age: {$gte: 18}});  
select * from people where age >= 18 と同じ意味です。

    1
    2

7. 年齢が <=18 のレコードを検索する

db.people.find({age: {$lte: 18}});

    1

8. 年齢 >= 23 と年齢 <= 26 のクエリ

db.people.find({age: {$gte: 23, $lte: 26}});  

    1

9. 名前にmongoを含むデータのクエリ

db.people.find({name: /mongo/});  
以下と同等です:select * from people where name like '%mongo%';

    1
    2

10. のmongoで始まるクエリ名。

db.people.find({name: /^mongo/}) とします。 

    1

以下と同等です:select * from people where name like 'mongo%';

11、指定されたカラム名、年齢データを問い合わせる

db.people.find({}, {name: 1, age: 1});  

    1

と同じ意味です:select name, age from people;
もちろんnameもtrueかfalseで、river name:1の場合にtureを使っても効果は同じですが、falseの場合はnameを除外して、name以外のカラムの情報を表示します。

12は、指定された列名、年齢データ、年齢を問い合わせる; 18

db.people.find({age: {$gt: 18}}, {name: 1, age: 1});  
以下は、select name, age from people where age >18 と同じです。

    1
    2

13. 年齢で並べ替える

昇順: db.people.find().sort({age: 1});  
降順:db.people.find().sort({age: -1})。 

    1
    2

14. 名前 = zhangsan、年齢 = 18 のデータを問い合わせる。

db.people.find({name: 'zhangsan', age: 18});  
以下と同等です:select * from people where name = 'zhangsan' and age = '18';

    1
    2

15. 最初の5つのデータをクエリする

db.people.find().limit(5);  
select * from people Limit 5 と同じ意味です。

    1
    2

16. 10項目以降のクエリデータ

db.people.find().skip(10);  
以下と同等です:select * from people where id not in (select id from people limit 10);

    1
    2

17. 5から10までのデータを問い合わせる

db.people.find().limit(10).skip(5);  
ページングに使用可能、上限はpageSize、スキップは最初の数ページ * pageSize

    1
    2

18.orとクエリ

db.people.find({$or: [{age: 18}, {age: 18}]});  
以下と同等:select * from people where age = 18 or age = 18;

    1
    2

19. 最初のデータをクエリする

db.people.findOne()を実行します。 
select * from people limit 1 と同じ意味です。
db.people.find().limit(1);

    1
    2
    3

20. 結果セット内のレコード数を問い合わせる

db.people.find({age: {$gte: 18}}).count();  
select count(*) from people where age >= 20 と同じ意味です。

    1
    2

21. 合計を求める

db.people.find({sex: {$exists: true}}).count()を実行します。
select count(sex) from people と同じ意味です。

    VI. コレクションのインデックス作成

1. インデックスの作成

db.people.ensureIndex({name: 1})。 
db.people.ensureIndex({name: 1, ts: -1}); //結合インデックス
db.people.ensureIndex({"name":1},{"unique":true}); //一意なインデックス

    1
    2
    3

2. 現在の集約されたコレクションのすべてのインデックスを照会する

db.people.getIndexes() を実行します。 

    1

3. インデックスレコードの総サイズを表示

db.people.totalIndexSize() を参照してください。 

    1

4. 現在のコレクションのすべてのインデックス情報を読み取る

db.people.reIndex()を実行します。 

    1

5. 指定したインデックスを削除する

db.people.dropIndex("name_1") を実行します。

    1

6. すべてのインデックス索引を削除する

db.people.dropIndexes()を実行します。 

    1

    VII. コレクションデータの修正、追加、削除

1. 追加

db.people.save({name: 'zhangsan', age: 18, sex: true});  

    1

追加されたデータに応じたデータカラム、固定ではありません。

2. 修正

db.people.update({age: 18}, {$set: {name: 'changeName'}}, false, true)を実行します。 
update people set name = 'changeName' where age = 18 と同じ意味です。 
db.people.update({name: 'zhangs'}, {$inc: {age: 12}}, false, true)を実行します。 
update people set age = age + 12 where name = 'zhangs' と同じ意味です。 
db.people.update({name: 'zhangs'}, {$inc: {age: 12}, $set: {name: 'hoho'}}, false, true)を実行します。 
update people set age = age + 12, name = 'hoho' where name = 'zhangs' と同じ意味です。 

    1
    2
    3
    4
    5
    6

3. 削除

db.people.remove({age: 12});
---------------------
著者 Tonny__
出典 CSDN
元記事: https://blog.csdn.net/zc375039901/article/details/79951047
著作権について これはブログ主のオリジナル記事です。ブログ記事へのリンクを貼ってください