cncml手绘网
标题: PHP7连接MongoDB进行数据更新 [打印本页]
作者: admin 时间: 2019-3-19 00:38
标题: PHP7连接MongoDB进行数据更新
查询操作
" i. ~1 \" H7 z- $filter["season_id"] = 106;
7 F7 _. S, p }$ R0 T5 U4 ^ - //$filter["array.8"] = 'cml123';
( B, Q9 ^( M6 k4 _* s$ M% f
i. B2 u$ l' x3 h( C8 y: x- $filter = ["matches.events_id"=>1];1 ^, H: M- I/ |
- 4 c$ y! N+ ~+ j. t. ^
- $filter = ["matches.events_id"=>['$in'=>[2,3,4,5,7]]];* \; G! S: {6 K. i- K
- $filter = ["matches.events_id"=>['$lt'=>'8'];9 s- S/ b' O6 V6 {1 t! m a; |
$ ]; T( ^" b- i: A: ~2 I4 J- : D$ v0 b; m! p' `5 `2 E1 d0 z9 p% O
- 以上条件说明 http://bbs.cncml.com/forum.php?m ... &extra=page%3D1
0 B! V+ W" H5 r5 Y) s8 `
+ E. l' H2 N9 J5 J+ E' R; `- $options = [
/ g) Y" l: `* G; \ R4 l - 'projection' => ['_id' => 0,"s_lastid" => 1],
1 ~% m# w0 K! N+ q% x - 'limit' => 1, //显示条数( @# {4 _0 m0 j) C( D) G, K. s/ O
- 'skip' => 1 //跳过几条5 Q$ A4 k/ c4 _: [, y! T+ V8 l, N
- ];
2 o6 y4 M* M! @0 V: W5 g0 n - 7 y8 k, ~, U" K d8 n0 E& A) }
- $querys = new MongoDB\Driver\Query($filter,$options);
' P. k$ n) \' E: i/ f/ L+ Z - $cursors = $manager->executeQuery('football.football_Competition_season_matches', $querys);
; z$ ~7 n6 S7 A* B$ `9 }6 O, | - $schedule= mg_querys($cursors);
/ H5 f) n) W F0 [ - print_r($schedule); W% i% R6 j8 W: b
复制代码
$ T" A. }* h$ [# W9 ^2 U% b( P+ q , r, z5 Y1 e; s! E' O. @4 R
# w5 h3 S5 _$ s9 J
& k5 h" W" H1 G& ^1 M% z0 Y-------------------------------------------------------------------------------------
一、更新前通过控制台查看数据,查看命令如下
db.sites.find().pretty()
二、通过php实现数据更新,代码如下
<?php
// 1.创建数据库连接对象
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
, x% r" T( r% M( w, @1 o5 I0 K// 2.创建数据更新对象
$bulk = new MongoDB\Driver\BulkWrite;
// 说明:更新index=2的数据,把原来的url更新为现在的内容,multi:只更新匹配到的第一条数据
$bulk->update(
['index' => 2],
['$set' => ['url' => 'https://www.java.com']],
['multi' => false, 'upsert' => false]
);
3 f) S% o4 x& l o3 L6 ~+ n// 3.创建更新操作级别对象
// 说明:MongoDB\Driver\WriteConcern::MAJORITY :抛出网络错误异常、服务器错误异常;并等待一个主服务器完成写操作
// 1000:等待超时时间
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
9 Z- W q! F5 d" o& E: @
// 4.执行写命令
// 说明:test.sites是test库下的sites集合
// $bulk:更新对象
// $writeConcern:写操作保证级别
$result = $manager->executeBulkWrite('test.sites', $bulk, $writeConcern);
( a( v- }4 a0 Z1 }9 @
// 5.输出更新后的结果
var_dump($result);
代码截图如下:
运行结果截图如下:
三、通过控制台查看更新后的数据,查看命令如下
db.sites.find().pretty()
4 ?! ~. K( q, i; ?6 G$ \
* [6 s1 Z1 w& e# q. ^" @
| 欢迎光临 cncml手绘网 (http://www.cncml.com/) |
Powered by Discuz! X3.2 |