您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10200|回复: 0

[php学习资料] PHP7连接MongoDB进行数据更新

[复制链接]
发表于 2019-3-19 00:38:13 | 显示全部楼层 |阅读模式
查询操作
) |, B. D* A( D* H! H
  1. $filter["season_id"] = 106;# Y; S  V. E! ^: j) F1 n# Q
  2. //$filter["array.8"] = 'cml123';
    0 c" a' @+ k3 @
  3. ) b! I8 c' V: C7 E* F8 Q
  4. $filter = ["matches.events_id"=>1];! L( C) b) m0 _0 A6 z5 B

  5. ' u* ]! r8 u' E$ A! w2 Y; g
  6. $filter = ["matches.events_id"=>['$in'=>[2,3,4,5,7]]];* \" Z4 c# f* y0 q$ C
  7. $filter = ["matches.events_id"=>['$lt'=>'8'];% E8 t, j6 p/ `  Q6 F- C/ ~4 R

  8. % w. I$ ?7 l1 `  x
  9. - M' L. X; `% x2 k( Z3 J3 `, k: M
  10. 以上条件说明 http://bbs.cncml.com/forum.php?m ... &extra=page%3D12 z7 u# L2 ?+ n9 i* v# t6 `

  11. 6 I, z( \0 L6 M' n0 G* i
  12. $options = [2 w$ j7 x0 \* d3 R& }/ b4 ]* j
  13.     'projection' => ['_id' => 0,"s_lastid" => 1],7 p0 q  S8 a7 H4 f/ W
  14.     'limit' => 1,       //显示条数
    7 @2 v- z0 \, w+ Z
  15.     'skip' => 1         //跳过几条
    & y8 U: I3 [: T
  16. ];5 c* z/ G8 ?4 q. N% U3 w; x, L

  17. 1 P8 k% n, P0 L7 b
  18. $querys = new MongoDB\Driver\Query($filter,$options);" O2 W( ~' ?( X" o9 E4 o0 L
  19. $cursors = $manager->executeQuery('football.football_Competition_season_matches', $querys);; o7 d$ q. c1 U0 q; L. }7 {
  20. $schedule= mg_querys($cursors);
    / j9 I. u& c, Q& @0 B4 L; m0 n
  21. print_r($schedule);  q9 \  b! W4 w& Z0 ~
复制代码

% W1 f6 N( V, M8 t' l2 N/ M

2 p* K& ]$ e1 c4 h; S/ l$ d1 E
; }( I6 i% W# y9 M- b. X, t  |' a6 A
-------------------------------------------------------------------------------------
一、更新前通过控制台查看数据,查看命令如下
    db.sites.find().pretty()
1540370851832226[1].png
二、通过php实现数据更新,代码如下
<?php
// 1.创建数据库连接对象
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$ y4 h- ~0 j7 o. i+ a5 N
// 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 @% I4 Q! H! q$ f, I
// 3.创建更新操作级别对象
// 说明:MongoDB\Driver\WriteConcern::MAJORITY :抛出网络错误异常、服务器错误异常;并等待一个主服务器完成写操作
// 1000:等待超时时间
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
" z% s- z+ R( l, w
// 4.执行写命令
// 说明:test.sites是test库下的sites集合
// $bulk:更新对象
// $writeConcern:写操作保证级别
$result = $manager->executeBulkWrite('test.sites', $bulk, $writeConcern);
; T! g0 b' }& |* {' q: V0 ]
// 5.输出更新后的结果
var_dump($result);
代码截图如下:
1540370934384815[1].png
运行结果截图如下:
1540370965710698[1].png
三、通过控制台查看更新后的数据,查看命令如下
    db.sites.find().pretty()
1540371035185082[1].png

3 a  G4 {, G" A3 j
8 D; J9 u8 s! l% Z4 t# C" O
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-3-29 13:24 , Processed in 0.171039 second(s), 25 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!