PHPにmongodbデータベースを使用するインストール
7322 ワード
従来のデータベースでは、データベースデータを操作するには大量のsql文を書く必要があります.また、不規則なデータの格納を行う場合、従来の関係型データベースのテーブル作成時に異なるフィールドの処理にも力が入らないように見えます.mongoは運に応じて生まれ、ajax技術の広範な応用、jsonフォーマットの広範な受け入れ、mongoを開発者に近づけます.
mongoの概要と応用シーン
MongoDBは、ドキュメント向けの非リレーショナル・データベース(NoSQL)で、json形式で格納されます.Mongo DBはオブジェクト指向思想(OO思想)をうまく実現し,Mongo DBでは各レコードがDocumentオブジェクトである.Mongo DBの最大の利点は、すべてのデータ永続操作が開発者がSQL文を手動で作成する必要がなく、直接メソッドを呼び出すことでCRUD操作を簡単に実現できることです.
mongoは次のシーンに適用できます.
大サイズ、低価値のデータjsonおよびオブジェクトタイプのデータを格納するWebサイトキャッシュデータコメント、サブコメントクラスには明らかな依存関係のあるデータマルチサーバデータがあり、内蔵されたMapReduceは現実的にグローバルに遍歴しやすい.
mongodbのインストールと使用
私たちは公式サイトでhttps://www.mongodb.org/の最新の安定バージョンにダウンロードできます.mongoは公式にコンパイルされています.解凍後、そのコマンドはbinディレクトリの下に使用できます.
使用前にmongoを配置する.confファイル
データベースとデータテーブルはすべて直接作成することができて、つまり切り替えなくて、直接使用して、使う時すぐ作成して、mongoの中で直接jsスクリプトを書くことができて、直接実行することができて、mongoの中でもし指定しないならば_idフィールド、mongoは自動的に1つ追加されます.
mongoの各種コマンド
mongoのコマンドはその真髄であり、これらの非常に複雑なコマンドが集合し、mongoのクエリーが美しく効率的になります.mongo内の各テーブルはcollection(コレクション)と呼ばれ、コマンドを使用してMySQLと同様に、データベース内に切り替えて各collectionに直接操作します.そのコマンドは、メソッド(func())、クエリーボディ({}に書かれている)、オペレータ($で始まる)から構成されます.
基本コマンド
クエリボディ
find()メソッドの強化
update文
カーソル
索引
MapReduce
MapReduceはmongoに内蔵された非常に強力な遍歴操作ツールで、mapとreduceの2つの関数を実現する必要があります.
もっと詳しいコマンドはmongoの中国語コミュニティでhttp://docs.mongoing.com/manual-zh/見つけます.
mongoのユーザー、データインポートエクスポート、クラスタ
ユーザー管理
MongoDBのデフォルトでは、認証はオンになっていません.サーバを起動するときに--authまたは--keyFileオプションを追加して権限を開くことができます.プロファイルを使用する場合はsecurityを使用する.义齿keyFile設定.
MongoDBは、各ロールが一般的な使用例に明確な役割を果たす独自のロールを提供します.たとえばread、readWrite、dbAdmin、rootなどのロールです.ユーザーの作成、ロールの作成、ユーザーに異なるロールの割り当て/回収を行うことで、ユーザー管理を行います.
ロールを追加する場合は、adminデータベースに管理者ロールを追加し、管理者ロールを使用して各ライブラリに異なるロールを追加します.
データインポートエクスポート
mongoが持参したツールを使用してインポート・エクスポートを行います.mongo/binディレクトリの下では、csv形式をエクスポートし、データ交換を容易にすることが望ましいです.
mongoデータベースクラスタ
mongodを開くときにオプションを追加--replSet replname;mongoクライアントで前のmongodプロセスに接続し、adminデータベースに入り、mongoconf変数を宣言します.
use admin; var rsconf={_id:'replname',members[{_id:0,host:'xxx'},{_id:1,host:'xxy'}]}; rs.initiatee(rsconf);クラスタを初期化すると、mongoはid番号をprimaryに自動的に設定し、他のmongodプロセスはsecondaryになります.
secondaryプロセスに接続し、slaveOk()関数を使用してスレーブプロセスを初期化します.PHPでmongoデータベースを操作するには、phpにmongo拡張子を追加します(linuxの下のPHPを参照).次に、スクリプトでmongoクラス関数ライブラリを使用できます.
他のクラスライブラリとは異なり、コアクラスは1つしかありません.mongoには4つのクラスがあります.それぞれ:
Mongoクラス、ベースクラス、接続を閉じる、グローバルデータベースに対する操作方法を持つ.mongodyクラス、メールMongoクラスはselectDB()メソッドで得られ、表レベルの操作方法を持つ.MongoCollectionクラスは、一般にMongo->dbname->collectionまたは直接MongoDBクラスとデータベース名で実例化され、データに対する基本的な操作を有する.MongoCursorクラスは、MongoCollectionによってfind()メソッドによって得られ、通常のカーソル遍歴操作を有する.次は典型的なmongo操作です.
mongoの概要と応用シーン
MongoDBは、ドキュメント向けの非リレーショナル・データベース(NoSQL)で、json形式で格納されます.Mongo DBはオブジェクト指向思想(OO思想)をうまく実現し,Mongo DBでは各レコードがDocumentオブジェクトである.Mongo DBの最大の利点は、すべてのデータ永続操作が開発者がSQL文を手動で作成する必要がなく、直接メソッドを呼び出すことでCRUD操作を簡単に実現できることです.
mongoは次のシーンに適用できます.
大サイズ、低価値のデータjsonおよびオブジェクトタイプのデータを格納するWebサイトキャッシュデータコメント、サブコメントクラスには明らかな依存関係のあるデータマルチサーバデータがあり、内蔵されたMapReduceは現実的にグローバルに遍歴しやすい.
mongodbのインストールと使用
私たちは公式サイトでhttps://www.mongodb.org/の最新の安定バージョンにダウンロードできます.mongoは公式にコンパイルされています.解凍後、そのコマンドはbinディレクトリの下に使用できます.
使用前にmongoを配置する.confファイル
port=xxxxx // , 27017
dbpath=/usr/local/mongodb/db //
logpath=/usr/local/mongodb/logs/mongodb.log //
logappend=true // ,
fork=ture //
データベースとデータテーブルはすべて直接作成することができて、つまり切り替えなくて、直接使用して、使う時すぐ作成して、mongoの中で直接jsスクリプトを書くことができて、直接実行することができて、mongoの中でもし指定しないならば_idフィールド、mongoは自動的に1つ追加されます.
mongoの各種コマンド
mongoのコマンドはその真髄であり、これらの非常に複雑なコマンドが集合し、mongoのクエリーが美しく効率的になります.mongo内の各テーブルはcollection(コレクション)と呼ばれ、コマンドを使用してMySQLと同様に、データベース内に切り替えて各collectionに直接操作します.そのコマンドは、メソッド(func())、クエリーボディ({}に書かれている)、オペレータ($で始まる)から構成されます.
基本コマンド
show dbs //
use dbname //
db.createCollection('collection') //
db.collection.drop() //
db.dropDatabase() //
db.collection.insert({data}) //
db.collection.find() //
クエリボディ
{key.attr.attr:value} //
{key:{$ne|$gt|$gte|$lt|$lte|$in|$nin|$all:value}} //key $oper value
{$or|$and|$not|$nor:[{key1:{$gt:value}},{key2:{$ne:value}}]} // $oper key1,key2
{key:{$mod{8,2}}} // key 8 2 。
{key:{$exist:1}} // key 。
{key:{$type:String|Double|Array|Date|Object|Boolean|......}}// key type
{key:{$regex:/pattern/}} // ,
{$where:'this.attr.express.....'} // where , JS ,
find()メソッドの強化
db.collection.find(query,{ :1, :0})
db.collection.find(query).skip( ).limit( );
db.collection.find(query).explain() // MYSQL 。
db.collection.remove(query,[justone]) // query, ;[justone] false , 。
update文
db.collection.update(query,{key:newvalue}) // : , key
db.collection.update(query,
{
$set:{key:newvalue},
$unset:{key:value},
$rename:{key:value},
$inc:{key:value},
......
},
{
multi:true, // , false
upsert:true // , false
}
)
カーソル
var cursorName=db.collection.fund(query,...)[.skip(num).limit(num)] //
cursorName.hasNext() //
printjson(cursorName.next()) //
cursorName.forEach(function(Obj){process Obj}) //
索引
db.collection.getIndexes() //
db.collection.ensureIndex({key:1/-1[,key.attr:1/-1]},{unique:1( )},{sparse:1( )})// /
db.collection.dropIndex({key:1/2}) //
db.collection.reIndex() //
MapReduce
MapReduceはmongoに内蔵された非常に強力な遍歴操作ツールで、mapとreduceの2つの関数を実現する必要があります.
db.runCommand(
{
mapReduce: collection, //
map: function(){emit(key1,key2)}, // key1 key2
reduce: function(key,value){}, // key value
out:
もっと詳しいコマンドはmongoの中国語コミュニティでhttp://docs.mongoing.com/manual-zh/見つけます.
mongoのユーザー、データインポートエクスポート、クラスタ
ユーザー管理
MongoDBのデフォルトでは、認証はオンになっていません.サーバを起動するときに--authまたは--keyFileオプションを追加して権限を開くことができます.プロファイルを使用する場合はsecurityを使用する.义齿keyFile設定.
MongoDBは、各ロールが一般的な使用例に明確な役割を果たす独自のロールを提供します.たとえばread、readWrite、dbAdmin、rootなどのロールです.ユーザーの作成、ロールの作成、ユーザーに異なるロールの割り当て/回収を行うことで、ユーザー管理を行います.
ロールを追加する場合は、adminデータベースに管理者ロールを追加し、管理者ロールを使用して各ライブラリに異なるロールを追加します.
use admin;( admin , )
db.createUser(
{
user: "username",
pwd: "password",
roles:
[
{
role: "userAdminAnyDatabase",
db: "admin"
}
]
}
)
use database;
db.auth('username','passwd'); , mongo 。
データインポートエクスポート
mongoが持参したツールを使用してインポート・エクスポートを行います.mongo/binディレクトリの下では、csv形式をエクスポートし、データ交換を容易にすることが望ましいです.
./mongoexport -d dataname -c tablename -f key1,key2 -q 'query' -o ainname --csv// , json
./mongoimport -d dataname -c tablename --type json --file ./path // , json
mongoデータベースクラスタ
mongodを開くときにオプションを追加--replSet replname;mongoクライアントで前のmongodプロセスに接続し、adminデータベースに入り、mongoconf変数を宣言します.
use admin; var rsconf={_id:'replname',members[{_id:0,host:'xxx'},{_id:1,host:'xxy'}]}; rs.initiatee(rsconf);クラスタを初期化すると、mongoはid番号をprimaryに自動的に設定し、他のmongodプロセスはsecondaryになります.
secondaryプロセスに接続し、slaveOk()関数を使用してスレーブプロセスを初期化します.PHPでmongoデータベースを操作するには、phpにmongo拡張子を追加します(linuxの下のPHPを参照).次に、スクリプトでmongoクラス関数ライブラリを使用できます.
他のクラスライブラリとは異なり、コアクラスは1つしかありません.mongoには4つのクラスがあります.それぞれ:
Mongoクラス、ベースクラス、接続を閉じる、グローバルデータベースに対する操作方法を持つ.mongodyクラス、メールMongoクラスはselectDB()メソッドで得られ、表レベルの操作方法を持つ.MongoCollectionクラスは、一般にMongo->dbname->collectionまたは直接MongoDBクラスとデータベース名で実例化され、データに対する基本的な操作を有する.MongoCursorクラスは、MongoCollectionによってfind()メソッドによって得られ、通常のカーソル遍歴操作を有する.次は典型的なmongo操作です.
$mongo=new Mongo();
$mongo->connect('host',port);
$collection=$mongo->dbname->collection;
$cursor=$collection->find();
$cursor->operate();
$mongo->close();