说明
BulkWrite 收集将被发送到服务端的写入选项
Manager 定义一个连接器,连接到数据库
WriteConcern 配置写入策略,满足不同写入需求
executeBulkWrite 真正执行写入
增
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x'=>1,'name'=>'taobao','url'=>'www.taobao.com']);
$bulk->insert(['x'=>2,'name'=>'google','url'=>'www.google.com']);
$bulk->insert(['x'=>3,'name'=>'baidu','url'=>'www.baidu.com']);
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite('test.runoob', $bulk, $writeConcern);
查
$manager=new MongoDB\Driver\Manager("mongodb://localhost:27017");
$filter=['x'=>['$gt'=>1]];
$options=[
'projection' => ['_id'=>0],
'sort' => ['x'=>-1],
];
$query=new MongoDB\Driver\Query($filter,$options);
$cursor=$manager->executeQuery('test.runoob',$query);
foreach($cursor as $document){
print_r($document);
}
改
$bulk=new MongoDB\Driver\BulkWrite();
$bulk->update(
['x'=>2],
['$set'=>['name'=>'乘风破浪','url'=>'www.hewie.cn']],
['multi'=>false,'upsert'=>false]
);
$manager=new MongoDB\Driver\Manager("mongodb://localhost:27017");
$writeConcern=new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY,1000);
$result=$manager->executeBulkWrite('test.runoob',$bulk,$writeConcern);
删
$bulk=new MongoDB\Driver\BulkWrite();
$bulk->delete(['x' => 1], ['limit' => 1]);// limit 为 1 时,删除第一条匹配数据
$bulk->delete(['x' => 2], ['limit' => 0]); // limit 为 0 时,删除所有匹配数据
$manager=new MongoDB\Driver\Manager("mongodb://localhost:27017");
$writeConcern=new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY,1000);
$result=$manager->executeBulkWrite('test.runoob',$bulk,$writeConcern);