ホームページ  >  記事  >  バックエンド開発  >  php7でのmongodbの基本的な使い方(詳細コード解説)

php7でのmongodbの基本的な使い方(詳細コード解説)

藏色散人
藏色散人転載
2019-04-18 10:11:176066ブラウズ

ヒント: 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(&#39;mongodb://root:123@10.10.10.104:27017&#39;);

root ユーザー; 123: パスワード; パスワードがない場合は、書かないでください

2: Query

<?php

//链接mongodb
$manager = new MongoDB\Driver\Manager(&#39;mongodb://root:sjhc168@10.10.10.104:27017&#39;);

//查询
$filter =  [&#39;user_id&#39;=>[&#39;$gt&#39;=>0]]; //查询条件 user_id大于0
$options = [
   &#39;projection&#39; => [&#39;_id&#39; => 0], //不输出_id字段
   &#39;sort&#39; => [&#39;user_id&#39;=>-1] //根据user_id字段排序 1是升序,-1是降序
];
$query = new MongoDB\Driver\Query($filter, $options); //查询请求
$list = $manager->executeQuery(&#39;location.box&#39;,$query); // 执行查询 location数据库下的box集合


foreach ($list as $document) {
    print_r($document); 
}

クエリその他の条件については、セクション 2 の基本的な mongodb コマンドを参照してください。クエリ

3: 追加

<?php

//链接mongodb
$manager = new MongoDB\Driver\Manager(&#39;mongodb://root:sjhc168@10.10.10.104:27017&#39;);

$bulk = new MongoDB\Driver\BulkWrite; //默认是有序的,串行执行
//$bulk = new MongoDB\Driver\BulkWrite([&#39;ordered&#39; => flase]);//如果要改成无序操作则加flase,并行执行
$bulk->insert([&#39;user_id&#39; => 2, &#39;real_name&#39;=>&#39;中国&#39;,]);
$bulk->insert([&#39;user_id&#39; => 3, &#39;real_name&#39;=>&#39;中国人&#39;,]);
$manager->executeBulkWrite(&#39;location.box&#39;, $bulk); //执行写入 location数据库下的box集合

4: を変更します。

<?php

//链接mongodb
$manager = new MongoDB\Driver\Manager(&#39;mongodb://root:sjhc168@10.10.10.104:27017&#39;);

$bulk = new MongoDB\Driver\BulkWrite; //默认是有序的,串行执行
//$bulk = new MongoDB\Driver\BulkWrite([&#39;ordered&#39; => flase]);//如果要改成无序操作则加flase,并行执行
$bulk->update(
	[&#39;user_id&#39; => 2],
	[&#39;$set&#39;=>[&#39;real_name&#39;=>&#39;中国国&#39;]
]); 
//$set相当于mysql的 set,这里和mysql有两个不同的地方,
//1:字段不存在会添加一个字段;
//2:mongodb默认如果条件不成立,新增加数据,相当于insert


//如果条件不存在不新增加,可以通过设置upsert
//db.collectionName.update(query, obj, upsert, multi);

$bulk->update(
	[&#39;user_id&#39; => 5],
	[
		&#39;$set&#39;=>[&#39;fff&#39;=>&#39;中国国&#39;]
	],
	[&#39;multi&#39; => true, &#39;upsert&#39; => false] 
	//multi为true,则满足条件的全部修改,默认为true,如果改为false,则只修改满足条件的第一条
	//upsert为 treu:表示不存在就新增
);
$manager->executeBulkWrite(&#39;location.box&#39;, $bulk); //执行写入 location数据库下的box集合

順序設定

1: デフォルトは true. データの挿入と更新は順番に実行されます. エラーが発生した場合, 以降の実行は停止されます. Mongo 公式それをシリアルと呼びます。
2: false の場合、mongo は更新されたデータを同時に挿入します。途中でエラーが発生しても、その後の操作には影響しません。Mongo では正式にこれを並列と呼んでいます

5: 削除

<?php

//链接mongodb
$manager = new MongoDB\Driver\Manager(&#39;mongodb://root:sjhc168@10.10.10.104:27017&#39;);

$bulk = new MongoDB\Driver\BulkWrite; //默认是有序的,串行执行
//$bulk = new MongoDB\Driver\BulkWrite([&#39;ordered&#39; => flase]);//如果要改成无序操作则加flase,并行执行
$bulk->delete([&#39;user_id&#39;=>5]);//删除user_id为5的字段
$manager->executeBulkWrite(&#39;location.box&#39;, $bulk); //执行写入 location数据库下的box集合

delete は、limit を通じてさまざまな削除方法を設定することもできます

$bulk->delete([&#39;user_id&#39; => 1], [&#39;limit&#39; => 1]);   // limit 为 1 时,删除第一条匹配数据
$bulk->delete([&#39;user_id&#39; => 2], [&#39;limit&#39; => 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 サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。