ヒント: PHP の mongodb 拡張機能は、5.6 以降、元の mongo 拡張機能を廃止しました。PHP7 の pecl ダウンロード アドレスは: https://pecl.php.net /package/mongodb、または mongodb の公式開発を選択します: https://github.com/mongodb/mongo-php-library. git 上のこれは以前の mongo 書き込みメソッドをサポートしていますが、pecl 上の mongodb は以前のメソッドをサポートしていません。書き方。
PHP7 の新しい API を使用して要約してみましょう:
1: CURD
# #1: リンク
<?php //链接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:123@10.10.10.104:27017');
root ユーザー; 123: パスワード; パスワードがない場合は、書かないでください
2: Query
<?php //链接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:sjhc168@10.10.10.104:27017'); //查询 $filter = ['user_id'=>['$gt'=>0]]; //查询条件 user_id大于0 $options = [ 'projection' => ['_id' => 0], //不输出_id字段 'sort' => ['user_id'=>-1] //根据user_id字段排序 1是升序,-1是降序 ]; $query = new MongoDB\Driver\Query($filter, $options); //查询请求 $list = $manager->executeQuery('location.box',$query); // 执行查询 location数据库下的box集合 foreach ($list as $document) { print_r($document); }
クエリその他の条件については、セクション 2 の基本的な mongodb コマンドを参照してください。クエリ
3: 追加
<?php //链接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:sjhc168@10.10.10.104:27017'); $bulk = new MongoDB\Driver\BulkWrite; //默认是有序的,串行执行 //$bulk = new MongoDB\Driver\BulkWrite(['ordered' => flase]);//如果要改成无序操作则加flase,并行执行 $bulk->insert(['user_id' => 2, 'real_name'=>'中国',]); $bulk->insert(['user_id' => 3, 'real_name'=>'中国人',]); $manager->executeBulkWrite('location.box', $bulk); //执行写入 location数据库下的box集合
4: を変更します。
<?php //链接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:sjhc168@10.10.10.104:27017'); $bulk = new MongoDB\Driver\BulkWrite; //默认是有序的,串行执行 //$bulk = new MongoDB\Driver\BulkWrite(['ordered' => flase]);//如果要改成无序操作则加flase,并行执行 $bulk->update( ['user_id' => 2], ['$set'=>['real_name'=>'中国国'] ]); //$set相当于mysql的 set,这里和mysql有两个不同的地方, //1:字段不存在会添加一个字段; //2:mongodb默认如果条件不成立,新增加数据,相当于insert //如果条件不存在不新增加,可以通过设置upsert //db.collectionName.update(query, obj, upsert, multi); $bulk->update( ['user_id' => 5], [ '$set'=>['fff'=>'中国国'] ], ['multi' => true, 'upsert' => false] //multi为true,则满足条件的全部修改,默认为true,如果改为false,则只修改满足条件的第一条 //upsert为 treu:表示不存在就新增 ); $manager->executeBulkWrite('location.box', $bulk); //执行写入 location数据库下的box集合
順序設定
1: デフォルトは true. データの挿入と更新は順番に実行されます. エラーが発生した場合, 以降の実行は停止されます. Mongo 公式それをシリアルと呼びます。
2: false の場合、mongo は更新されたデータを同時に挿入します。途中でエラーが発生しても、その後の操作には影響しません。Mongo では正式にこれを並列と呼んでいます
5: 削除
<?php //链接mongodb $manager = new MongoDB\Driver\Manager('mongodb://root:sjhc168@10.10.10.104:27017'); $bulk = new MongoDB\Driver\BulkWrite; //默认是有序的,串行执行 //$bulk = new MongoDB\Driver\BulkWrite(['ordered' => flase]);//如果要改成无序操作则加flase,并行执行 $bulk->delete(['user_id'=>5]);//删除user_id为5的字段 $manager->executeBulkWrite('location.box', $bulk); //执行写入 location数据库下的box集合
delete は、limit を通じてさまざまな削除方法を設定することもできます
$bulk->delete(['user_id' => 1], ['limit' => 1]); // limit 为 1 时,删除第一条匹配数据 $bulk->delete(['user_id' => 2], ['limit' => 0]); // limit 为 0 时,删除所有匹配数据,默认删除所有
6: 例外のキャプチャ
MongoDB\Driver\Exception\AuthenticationException MongoDB\Driver\Exception\BulkWriteException MongoDB\Driver\Exception\ConnectionException MongoDB\Driver\Exception\ConnectionTimeoutException MongoDB\Driver\Exception\Exception //所有驱动程序异常的公共接口 MongoDB\Driver\Exception\ExecutionTimeoutException MongoDB\Driver\Exception\InvalidArgumentException MongoDB\Driver\Exception\LogicException MongoDB\Driver\Exception\RuntimeException MongoDB\Driver\Exception\SSLConnectionException MongoDB\Driver\Exception\UnexpectedValueException MongoDB\Driver\Exception\WriteException
手順: http://php.net /manual/zh /class.mongodb-driver-例外-認証例外.php
以上がphp7でのmongodbの基本的な使い方(詳細コード解説)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。