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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12400|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-3-19 00:38:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
查询操作

' @) L& j6 H4 g# N
  1. $filter["season_id"] = 106;
    ; b" w# R2 `6 Y: B2 d! E* N
  2. //$filter["array.8"] = 'cml123';& t2 K6 \  d1 R2 r
  3. 9 J/ t; c7 t- j, T, _4 _0 k8 K
  4. $filter = ["matches.events_id"=>1];
    : W$ c* x5 T6 N$ F
  5. : J$ _# V* @4 N  }
  6. $filter = ["matches.events_id"=>['$in'=>[2,3,4,5,7]]];3 b( F/ o+ a$ p1 c* P5 a2 ^
  7. $filter = ["matches.events_id"=>['$lt'=>'8'];
    6 A4 @" t& J2 Z

  8. 0 s# ?9 T9 a. W

  9. $ @1 f$ b( m+ i" i7 _# I
  10. 以上条件说明 http://bbs.cncml.com/forum.php?m ... &extra=page%3D12 y9 n1 [1 W2 I$ v2 f& h6 ~

  11. . `7 [7 k$ I* J, K) r3 a
  12. $options = [* C% Z0 b  X+ G) B. T
  13.     'projection' => ['_id' => 0,"s_lastid" => 1],
    ; }6 H6 M, b/ z+ W8 n+ [" F# P
  14.     'limit' => 1,       //显示条数
    . J2 m& N5 S) I- M# R9 O
  15.     'skip' => 1         //跳过几条( `' u+ O& l. N. N+ b4 x( A
  16. ];
    0 g& u8 [, F) g9 ?

  17. 2 r. q! ]/ o% `' F$ k. j& k/ T' a
  18. $querys = new MongoDB\Driver\Query($filter,$options);. b( z- J4 V& B$ [2 B
  19. $cursors = $manager->executeQuery('football.football_Competition_season_matches', $querys);
    % v5 R3 t: S* Z8 L0 `- F& k  \; F
  20. $schedule= mg_querys($cursors);7 _5 i, Y! v& q) f( V
  21. print_r($schedule);7 z4 x7 g0 I5 ^/ t
复制代码

* L; I/ n1 H. \  o6 v; M, A' g

: g! Y. b' P: N% v+ R! a9 {( r. E, x/ f7 d( e: u; `0 T$ ?

! U. ~/ i2 M* T$ I9 }% D
-------------------------------------------------------------------------------------
一、更新前通过控制台查看数据,查看命令如下
    db.sites.find().pretty()
二、通过php实现数据更新,代码如下
<?php
// 1.创建数据库连接对象
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

- _" ]  ?) f9 k& V- s: c
// 2.创建数据更新对象
$bulk = new MongoDB\Driver\BulkWrite;
// 说明:更新index=2的数据,把原来的url更新为现在的内容,multi:只更新匹配到的第一条数据
$bulk->update(
    ['index' => 2],
    ['$set' => ['url' => 'https://www.java.com']],
    ['multi' => false, 'upsert' => false]
);
; ]) M, d9 w# E0 k+ U2 b" L( N0 S! v
// 3.创建更新操作级别对象
// 说明:MongoDB\Driver\WriteConcern::MAJORITY :抛出网络错误异常、服务器错误异常;并等待一个主服务器完成写操作
// 1000:等待超时时间
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);

" Z6 U3 v! l, Z3 @% p
// 4.执行写命令
// 说明:test.sites是test库下的sites集合
// $bulk:更新对象
// $writeConcern:写操作保证级别
$result = $manager->executeBulkWrite('test.sites', $bulk, $writeConcern);
' w% d  [+ a. ]% n+ N
// 5.输出更新后的结果
var_dump($result);
代码截图如下:
运行结果截图如下:
三、通过控制台查看更新后的数据,查看命令如下
    db.sites.find().pretty()

, B0 \3 b, E  @" F3 Z2 G4 D
( g$ I8 ]! w- j1 p5 c9 a( q" Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 15:31 , Processed in 0.114391 second(s), 22 queries .

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