mongdbの基本的な使用

13549 ワード

Mongo DBは現在IT業界で非常に流行している非関係型データベース(NoSql)であり、柔軟なデータストレージ方式が現在のIT従業員に人気がある.Mongo DBはオブジェクト指向思想(OO思想)をうまく実現し,Mongo DBでは各レコードがDocumentオブジェクトである.Mongo DBの最大の利点は、すべてのデータ永続操作が開発者がSQL文を手動で作成する必要がなく、直接メソッドを呼び出すことでCRUD操作を簡単に実現できることです.
MongoDB基本使用
MongoDBを正常に起動した後、コマンドラインウィンドウを開いてmongoを入力すると、データベースのいくつかの操作ができます.
helpを入力すると、基本操作コマンドが表示されます.
show dbs:データベースリストの表示show collections:現在のデータベースのコレクション(リレーショナル・データベースのテーブルのようなもの)の表示show users:ユーザーの表示
use:現在のデータベースを切り替えます.これはMS-SQLの意味と同じdbです.help():データベース操作コマンドが表示され、多くのコマンドdbが含まれています.foo.help():集合操作コマンドを表示し、同様に多くのコマンドがあり、fooは現在のデータベースの下でfooという集合を指し、本当の意味でのコマンドdbではない.foo.find():現在のデータベース内のfooセットについてデータ検索を行う(条件がないため、すべてのデータがリストされる).db.foo.find({a:1}):現在のデータベース内のfooセットを検索します.データにaという属性があり、aの値が1であることを条件とします.
MongoDBにはデータベースを作成するコマンドはありませんが、似たようなコマンドがあります.
たとえば、「myTest」のデータベースを作成する場合は、use myTestコマンドを実行した後、db.createCollection('user')などの操作を行い、「myTest」というデータベースを作成できます.
データベース共通コマンド
1、Help表示コマンドプロンプト
 help
  db.help();
  db.yourColl.help();
  db.youColl.find().help();
  rs.help();
2、データベースの切り替え/作成
 use yourDB;コレクションを作成すると、現在のデータベースが自動的に作成されます.
3、すべてのデータベースを問い合わせる
 show dbs;
4、現在使用しているデータベースを削除する
 db.dropDatabase();
5、指定したホストからデータベースをクローンする
 db.cloneDatabase(“127.0.0.1”); 指定したマシン上のデータベースのデータを現在のデータベースにクローン化
6、指定したマシンから指定したデータベースデータをあるデータベースにコピーする
 db.copyDatabase("mydb", "temp", "127.0.0.1");ネイティブmydbのデータをtempデータベースにコピー
7.現在のデータベースの修復
 db.repairDatabase();
8、現在使用しているデータベースの表示
 db.getName();
 db; dbとgetNameメソッドは同じ効果で、現在使用されているデータベースをクエリーできます.
9、現在のdb状態を表示する
 db.stats();
10、現在のdbバージョン
 db.version();
11、現在のdbのリンクマシンアドレスを表示する
 db.getMongo();
Collectionコレクション
1、集計セットの作成(table)
 db.createCollection(“collName”, {size: 20, capped: 5, max: 100});
2、指定された名称の集計集合(table)を得る
 db.getCollection("account");
3、現在のdbのすべての集約集合を得る
 db.getCollectionNames();
4、現在のdbのすべての集計インデックスの状態を表示する
 db.printCollectionStats();
ユーザー関連
1、ユーザーを追加する
 db.addUser("name");
 db.addUser("userName", "pwd123", true); ユーザーの追加、パスワードの設定、読み取り専用かどうか
2、データベース認証、セキュリティモード
 db.auth("userName", "123123");
3、現在のすべてのユーザーを表示する
 show users;
4、ユーザーの削除
 db.removeUser("userName");
その他
1、照会前のエラー情報
 db.getPrevError();
2、エラー記録をクリアする
 db.resetError();
 
集計セットの基本情報の表示
1、      db.yourColl.help();
2、             db.yourColl.count();
3、         db.userInfo.dataSize();
4、           db db.userInfo.getDB();
5、          db.userInfo.stats();
6、          db.userInfo.totalSize();
7、           db.userInfo.storageSize();
8、Shard      db.userInfo.getShardVersion()
9、        db.userInfo.renameCollection("users");  userInfo    users
10、         db.userInfo.drop();

集約コレクションクエリー
1、      
db.userInfo.find();
   :select* from userInfo;
      20   ,         ,   it           。  :  it     “;”
                , DBQuery.shellBatchSize= 50;       50    。
 
2、                     
db.userInfo.distinct("name");
    name      
   :select distict name from userInfo;
 
3、  age = 22   
db.userInfo.find({"age": 22});
   : select * from userInfo where age = 22;
 
4、  age > 22   
db.userInfo.find({age: {$gt: 22}});
   :select * from userInfo where age >22;
 
5、  age < 22   
db.userInfo.find({age: {$lt: 22}});
   :select * from userInfo where age <22;
 
6、  age >= 25   
db.userInfo.find({age: {$gte: 25}});
   :select * from userInfo where age >= 25;
 
7、  age <= 25   
db.userInfo.find({age: {$lte: 25}});
 
8、  age >= 23    age <= 26
db.userInfo.find({age: {$gte: 23, $lte: 26}});
 
9、  name    mongo   
db.userInfo.find({name: /mongo/});
//   %%
select * from userInfo where name like ‘%mongo%’;
 
10、  name  mongo   
db.userInfo.find({name: /^mongo/});
select * from userInfo where name like ‘mongo%’;
 
11、     name、age  
db.userInfo.find({}, {name: 1, age: 1});
   :select name, age from userInfo;
  name    true false,  ture     name:1    ,   false    name,  name      。
 
12、     name、age  , age > 25
db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});
   :select name, age from userInfo where age >25;
 
13、      
  :db.userInfo.find().sort({age: 1});
  :db.userInfo.find().sort({age: -1});
 
14、  name = zhangsan, age = 22   
db.userInfo.find({name: 'zhangsan', age: 22});
   :select * from userInfo where name = ‘zhangsan’ and age = ‘22’;
 
15、   5   
db.userInfo.find().limit(5);
   :selecttop 5 * from userInfo;
 
16、  10      
db.userInfo.find().skip(10);
   :select * from userInfo where id not in (
selecttop 10 * from userInfo
);
 
17、   5-10     
db.userInfo.find().limit(10).skip(5);
     ,limit pageSize,skip    *pageSize
 
18、or    
db.userInfo.find({$or: [{age: 22}, {age: 25}]});
   :select * from userInfo where age = 22 or age = 25;
 
19、       
db.userInfo.findOne();
   :selecttop 1 * from userInfo;
db.userInfo.find().limit(1);
 
20、            
db.userInfo.find({age: {$gte: 25}}).count();
   :select count(*) from userInfo where age >= 20;
 
21、        
db.userInfo.find({sex: {$exists: true}}).count();
   :select count(sex) from userInfo;

索引
1、    
db.userInfo.ensureIndex({name: 1});
db.userInfo.ensureIndex({name: 1, ts: -1});
 
2、            
db.userInfo.getIndexes();
 
3、         
db.userInfo.totalIndexSize();
 
4、         index  
db.users.reIndex();
 
5、      
db.users.dropIndex("name_1");
 
6、        
db.users.dropIndexes();

コレクションデータの変更、追加、削除
1、  
db.users.save({name: ‘zhangsan’, age: 25, sex: true});
         ,    ,         
 
2、  
db.users.update({age: 25}, {$set: {name: 'changeName'}}, false, true);
   :update users set name = ‘changeName’ where age = 25;
 
db.users.update({name: 'Lisi'}, {$inc: {age: 50}}, false, true);
   :update users set age = age + 50 where name = ‘Lisi’;
 
db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true);
   :update users set age = age + 50, name = ‘hoho’ where name = ‘Lisi’;
 
3、  
db.users.remove({age: 132});
 
4、      
db.users.findAndModify({
    query: {age: {$gte: 25}},
    sort: {age: -1},
    update: {$set: {name: 'a2'}, $inc: {age: 2}},
    remove: true
});
 
db.runCommand({ findandmodify : "users",
    query: {age: {$gte: 25}},
    sort: {age: -1},
    update: {$set: {name: 'a2'}, $inc: {age: 2}},
    remove: true
});
update   remove           ;       。
         query      {}sort              ,                      ,       {}remove  true,             N/Aupdate        N/Anew  true,                。      ,      。falsefields  Retrieving a Subset of Fields (1.5.0+)All fieldsupsert            。    (1.5.4+)false

ステートメントブロックアクション
1、  Hello World
print("Hello World!");
       print  ,     "Hello World!"       ;
 
2、        json
tojson(new Object());
tojson(new Object('a'));
 
3、      
> for (var i = 0; i < 30; i++) {
... db.users.save({name: "u_" + i, age: 22 + i, sex: i % 2});
... };
        30   ,            
> for (var i = 0; i < 30; i++) db.users.save({name: "u_" + i, age: 22 + i, sex: i % 2});
     ,   db.users.find()     ,                 ,   it        ;
 
4、find     
>var cursor = db.users.find();
> while (cursor.hasNext()) {
    printjson(cursor.next());
}
        users  ,       
var cursor = db.users.find();
while (cursor.hasNext()) { printjson(cursor.next); }
      {} 

5、forEach    
db.users.find().forEach(printjson);
forEach                     
 
6、 find       
var cursor = db.users.find();
cursor[4];
       4     
          ,           :cursor.length();  cursor.count();
              
for (var i = 0, len = c.length(); i < len; i++) printjson(c[i]);
 
7、 find       
> var arr = db.users.find().toArray();
> printjson(arr[2]);
 toArray         
 
8、           
   age <= 28      age    
db.users.find({age: {$lte: 28}}, {age: 1}).forEach(printjson);
db.users.find({age: {$lte: 28}}, {age: true}).forEach(printjson);
  age  
db.users.find({age: {$lte: 28}}, {age: false}).forEach(printjson);
 
9、forEach        
db.things.find({x:4}).forEach(function(x) {print(tojson(x));});