2016-08-12 mongoDB
8806 ワード
データベースランキング
mongodb非関係型データベース
紹介する
MongoDBは、分散ファイルに基づいて格納されるデータベースです.
C++言語で作成されます.WEBアプリケーションに拡張性の高い高性能データストレージソリューションを提供することを目的としています.MongoDBはリレーショナル・データベースと非リレーショナル・データベースの間に介在する製品で、非リレーショナル・データベースの中で最も機能が豊富で、最もリレーショナル・データベースに似ています.彼がサポートしているデータ構造は非常に緩やかで、jsonのようなbsonフォーマットであるため、比較的複雑なデータ型を格納することができる.Mongoの最大の特徴は、彼がサポートしているクエリー言語が非常に強く、その構文はオブジェクト向けのクエリー言語に似ており、類似関係データベースの単一テーブルクエリーのほとんどの機能を実現することができ、データのインデックス化もサポートしていることです.
mongodbはドキュメントデータベースであり、ドキュメント(Bson->jsonのバイナリ化)が格納されます.
インストールダウンロードインストールパッケージ例:mongodb-linux-x 86_64-ubuntu1604-3.2.8.tgz 取付 MongoDB を起動
mongDB基本コマンド構文
helpを入力すると、基本操作コマンドが表示されます.
データベース共通コマンド Help表示コマンドプロンプト help
db.help();
db.yourColl.help();
db.youColl.find().help();
rs.help();データベースuse yourDBの切り替え/作成;コレクションを作成すると、現在のデータベース が自動的に作成されます.はすべてのデータベースshow dbsをクエリーします. 現在使用するデータベースdbを削除する.dropDatabase(); 指定ホストからデータベースdbをクローンする.cloneDatabase(“127.0.0.1”); 指定したマシン上のデータベースのデータを現在のデータベース にクローニングする.特定のマシンから特定のデータベースデータをあるデータベースdbにコピーする.copyDatabase("mydb", "temp", "127.0.0.1");ネイティブmydbのデータをtempデータベースにコピーする 現在のデータベースdbを修復する.repairDatabase(); 現在使用するデータベースdbを表示する.getName(); db; dbとgetNameメソッドは同じ効果で、現在使用されているデータベース をクエリーできます.は現在のdb状態dbを表示する.stats(); 現在のdbバージョン db.version(); 現在のdbのリンクマシンアドレス を表示する
db.getMongo();
Collectionコレクションは、集約集合(table)dbを作成する.createCollection(“collName”, {size: 20, capped: 5, max: 100}); は、指定する名称の集約集合(table)dbを得る.getCollection("account"); は、現在のdbのすべての集約集合dbを得る.getCollectionNames(); は、現在のdbのすべての集約インデックスの状態dbを表示する.printCollectionStats();
ユーザー関連ユーザdbを追加する.addUser("name"); db.addUser("userName", "pwd123", true); ユーザーの追加、パスワードの設定、読み取り専用かどうか データベース認証、セキュリティモードdb.auth("userName", "123123"); 現在のすべてのユーザーshow usersを表示します. ユーザdbを削除する.removeUser("userName");
その他クエリー前のエラー情報db.getPrevError(); エラーレコードdbをクリアする.resetError(); 集計セット基本情報を表示する
集約コレクションクエリーは、すべてのレコードdbをクエリーする.userInfo.find(); 相当于:select*from userInfo;デフォルトでは、各ページに20個のレコードが表示されます.表示されない場合は、it反復コマンドで次のページのデータをクエリーできます.注意:itコマンドを入力して「;」を付けることはできません.しかし、各ページの表示データのサイズをDBQueryで設定することができます.shellBatchSize= 50;これでページごとに50件の記録が表示されます. は、削除後の現在の集約集合のある列の重複データdbを問い合わせる.userInfo.distinct("name"); nameの同じデータをフィルタリングするのは、select distict name from userInfoに相当します. クエリーage=22のレコードdb.userInfo.find({"age": 22}); 相当:select*from userInfo where age=22; クエリーage>22のレコードdb.userInfo.find({age: {$gt: 22}}); 相当:select*from userInfo where age>22; age<22のレコードdbを問い合わせる.userInfo.find({age: {$lt: 22}}); 相当:select*from userInfo where age<22; クエリーage>=25のレコードdb.userInfo.find({age: {$gte: 25}}); 相当:select*from userInfo where age>=25; はage<=25のレコードdbをクエリーする.userInfo.find({age: {$lte: 25}}); クエリーage>=23、age<=26 db.userInfo.find({age: {$gte: 23, $lte: 26}}); クエリーnameにmongoのデータdbが含まれている.userInfo.find({name:/mongo/});//%select*from userInfo where name like'%mongo%'に相当します. は、nameのmongoで始まるdbをクエリーする.userInfo.find({name:/^mongo/}); select * from userInfo where name like ‘mongo%’; 指定カラムname、ageデータdbを問い合わせる.userInfo.find({}, {name: 1, age: 1}); 相当:select name,age from userInfo;もちろんnameはtrueやfalseを用いてもよいが,tureを用いた場合の河name:1の効果は同様であり,falseを用いるとnameを除外し,name以外の列情報を表示する. 指定カラムname、ageデータをクエリーし、age>25 db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1}); 相当:select name,age from userInfo where age>25; 年齢順昇順:db.userInfo.find().sort({age: 1}); 降順:db.userInfo.find().sort({age: -1}); はname=zhangsan,age=22のデータdbをクエリーする.userInfo.find({name: 'zhangsan', age: 22}); select*from userInfo where name=‘zhangsan’and age=‘22’; は、最初の5つのデータdbをクエリーする.userInfo.find().limit(5); 相当于:selecttop 5*from userInfo; は10以降のデータdbをクエリーする.userInfo.find().skip(10); 相当:select*from userInfo where id not in(selecttop 10*from userInfo); は5-10間のデータdbをクエリーする.userInfo.find().limit(10).skip(5); ページングに使用できます.limitはpageSize、skipは何ページ目*pageSize です. orクエリーdb.userInfo.find({$or: [{age: 22}, {age: 25}]}); 相当:select*from userInfo where age=22 or age=25; は、第1のデータdbをクエリーする.userInfo.findOne(); 相当于:selecttop 1*from userInfo;db.userInfo.find().limit(1); クエリある結果セットのレコード数db.userInfo.find({age: {$gte: 25}}).count(); 相当:select count(*)from userInfo where age>=20; は、ある列に従ってdbをソート.userInfo.find({sex: {$exists: true}}).count(); 相当:select count(sex)from userInfo;
索引インデックスdbを作成する.userInfo.ensureIndex({name: 1}); db.userInfo.ensureIndex({name: 1, ts: -1}); は、現在の集約セットのすべてのインデックスdbをクエリーする.userInfo.getIndexes(); 総インデックスレコードサイズdbを表示する.userInfo.totalIndexSize(); は、現在のセットのすべてのindex情報dbを読み出す.users.reIndex();
5、指定インデックスdbを削除する.users.dropIndex("name_1");すべてのインデックスdbを削除する.users.dropIndexes();
コレクションデータの変更、追加、削除追加 db.users.save({name: ‘zhangsan’, age: 25, sex: true}); 追加されたデータのデータ列は、固定されていません.追加されたデータに基づいて 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’; dbを削除する.users.remove({age: 132}); クエリ修正削除db.users.findAndModify({ query: {age: {$gte: 25}}, sort: {age: -1}, update: {$set: {name: 'a2'}, $inc: {age: 2}}, remove: true }); db.runCommand({
1. oracle
2. mysql
3. microsoft Sql Server
4. MongoDB
( )
5. PostgreSQL
6. DB2
7. Cassandra
NoSQL ,
8. Microsoft Access
9. SQLite
10. Redis
( )
mongodb非関係型データベース
紹介する
MongoDBは、分散ファイルに基づいて格納されるデータベースです.
C++言語で作成されます.WEBアプリケーションに拡張性の高い高性能データストレージソリューションを提供することを目的としています.MongoDBはリレーショナル・データベースと非リレーショナル・データベースの間に介在する製品で、非リレーショナル・データベースの中で最も機能が豊富で、最もリレーショナル・データベースに似ています.彼がサポートしているデータ構造は非常に緩やかで、jsonのようなbsonフォーマットであるため、比較的複雑なデータ型を格納することができる.Mongoの最大の特徴は、彼がサポートしているクエリー言語が非常に強く、その構文はオブジェクト向けのクエリー言語に似ており、類似関係データベースの単一テーブルクエリーのほとんどの機能を実現することができ、データのインデックス化もサポートしていることです.
mongodbはドキュメントデータベースであり、ドキュメント(Bson->jsonのバイナリ化)が格納されます.
インストール
cd mongodb-linux-x86_64-ubuntu1604-3.2.8/。 , 。
mv mongodb-linux-x86_64-ubuntu1604-3.2.8 /usr/local/mongodb。
cd /usr/local/mongodb/bin ,
bsondump* bson
mongo* ( mysql.exe)
mongod* ( mysqld.exe)
mongodump* ( , mysql mysqldump)
mongoexport* json csv
mongofiles* GridFS ,
mongoimport*
mongooplog* Replication
mongoperf* io , mongo io , sql server SQLIOSim
mongorestore*
mongos* ( ) ,
mongosniff* 。 MongoDB , tcpdump TCP/IP 。mongosniff 。
mongostat*
mongotop* MongoDB , 。 ,mongotop
mkdir /usr/local/mongodb/data
mkdir /usr/local/mongodb/logs
mongodb ./bin/mongod --dbpath /usr/local/mongodb/data/ --logpath /usr/local/mongodb/logs/mongodb.log --fork --port 27017
--dbpath
--logpath
--port ( 27017)
--fork
child process started successfully, parent exiting, 。 ps aux | grep mongo mongodb 。
:./bin/mongo
MongoDB shell version: 3.2.8
connecting to: test
mongDB基本コマンド構文
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” 。
データベース共通コマンド
db.help();
db.yourColl.help();
db.youColl.find().help();
rs.help();
db.getMongo();
Collectionコレクション
ユーザー関連
その他
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();
集約コレクションクエリー
索引
5、指定インデックスdbを削除する.users.dropIndex("name_1");
コレクションデータの変更、追加、削除
findandmodify : "users",
query: {age: {$gte: 25}}, sort: {age: -1}, update: {$set: {name: 'a2'}, $inc: {age: 2}}, remove: true });