1--TEST-- 2MongoDB\Driver\BulkWrite::update() with hint option 3--SKIPIF-- 4<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?> 5<?php skip_if_not_live(); ?> 6<?php skip_if_server_version('<', '4.2'); ?> 7<?php skip_if_not_clean(); ?> 8--FILE-- 9<?php 10require_once __DIR__ . "/../utils/basic.inc"; 11 12class CommandLogger implements MongoDB\Driver\Monitoring\CommandSubscriber 13{ 14 public function commandStarted(MongoDB\Driver\Monitoring\CommandStartedEvent $event) 15 { 16 if ($event->getCommandName() !== 'update') { 17 return; 18 } 19 20 printf("update included hint: %s\n", json_encode($event->getCommand()->updates[0]->hint)); 21 } 22 23 public function commandSucceeded(MongoDB\Driver\Monitoring\CommandSucceededEvent $event) 24 { 25 } 26 27 public function commandFailed(MongoDB\Driver\Monitoring\CommandFailedEvent $event) 28 { 29 } 30} 31 32$manager = new MongoDB\Driver\Manager(URI); 33 34$bulk = new MongoDB\Driver\BulkWrite(); 35$bulk->insert(['x' => 1]); 36$bulk->insert(['x' => 2]); 37$manager->executeBulkWrite(NS, $bulk); 38 39MongoDB\Driver\Monitoring\addSubscriber(new CommandLogger); 40 41$bulk = new MongoDB\Driver\BulkWrite; 42$bulk->update(['_id' => 1], ['$set' => ['x' => 11]], ['hint' => '_id_']); 43$manager->executeBulkWrite(NS, $bulk); 44 45$bulk = new MongoDB\Driver\BulkWrite; 46$bulk->update(['_id' => 2], ['$set' => ['x' => 22]], ['hint' => ['_id' => 1]]); 47$manager->executeBulkWrite(NS, $bulk); 48 49?> 50===DONE=== 51<?php exit(0); ?> 52--EXPECTF-- 53update included hint: "_id_" 54update included hint: {"_id":1} 55===DONE=== 56