cncml手绘网

标题: PHP7连接MongoDB进行数据更新 [打印本页]

作者: admin    时间: 2019-3-19 00:38
标题: PHP7连接MongoDB进行数据更新
查询操作

" i. ~1 \" H7 z
  1. $filter["season_id"] = 106;
    7 F7 _. S, p  }$ R0 T5 U4 ^
  2. //$filter["array.8"] = 'cml123';
    ( B, Q9 ^( M6 k4 _* s$ M% f

  3.   i. B2 u$ l' x3 h( C8 y: x
  4. $filter = ["matches.events_id"=>1];1 ^, H: M- I/ |
  5. 4 c$ y! N+ ~+ j. t. ^
  6. $filter = ["matches.events_id"=>['$in'=>[2,3,4,5,7]]];* \; G! S: {6 K. i- K
  7. $filter = ["matches.events_id"=>['$lt'=>'8'];9 s- S/ b' O6 V6 {1 t! m  a; |

  8. $ ]; T( ^" b- i: A: ~2 I4 J
  9. : D$ v0 b; m! p' `5 `2 E1 d0 z9 p% O
  10. 以上条件说明 http://bbs.cncml.com/forum.php?m ... &extra=page%3D1
    0 B! V+ W" H5 r5 Y) s8 `

  11. + E. l' H2 N9 J5 J+ E' R; `
  12. $options = [
    / g) Y" l: `* G; \  R4 l
  13.     'projection' => ['_id' => 0,"s_lastid" => 1],
    1 ~% m# w0 K! N+ q% x
  14.     'limit' => 1,       //显示条数( @# {4 _0 m0 j) C( D) G, K. s/ O
  15.     'skip' => 1         //跳过几条5 Q$ A4 k/ c4 _: [, y! T+ V8 l, N
  16. ];
    2 o6 y4 M* M! @0 V: W5 g0 n
  17. 7 y8 k, ~, U" K  d8 n0 E& A) }
  18. $querys = new MongoDB\Driver\Query($filter,$options);
    ' P. k$ n) \' E: i/ f/ L+ Z
  19. $cursors = $manager->executeQuery('football.football_Competition_season_matches', $querys);
    ; z$ ~7 n6 S7 A* B$ `9 }6 O, |
  20. $schedule= mg_querys($cursors);
    / H5 f) n) W  F0 [
  21. 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