gaillard / gridfs-update
一个用于在Mongo GridFS中实现原地更新的库
v1.0.0
2014-07-29 18:18 UTC
Requires
- php: >=5.4.0
- ext-mongo: ~1.3
Requires (Dev)
- phpunit/phpunit: ~4.1
- squizlabs/php_codesniffer: ~1.5
This package is not auto-updated.
Last update: 2024-09-24 02:38:02 UTC
README
一个用于在Mongo GridFS中实现原地更新的库
要求
需要 PHP 5.4.0(或更高版本)。
安装
要作为本地、项目特定的依赖项添加库,请使用 Composer!
{ "require": { "gaillard/gridfs-update": "~1.0" } }
示例
$id = new \MongoId(); $gridfs = (new \MongoClient())->selectDB('gridfsUpdaterExample')->getGridFS(); $gridfs->storeBytes('123456', ['_id' => $id, 'metadata' => ['key1' => 'Hello', 'key2' => 'Mr.', 'key3' => 'Smith']]); $before = $gridfs->findOne(); echo 'metadata is '; var_dump($before->file['metadata']); echo "bytes are {$before->getBytes()}\n"; GridFsUpdater::update( $gridfs, $id, '7890', [ '$set' => ['metadata.key2' => 'Bob'], '$unset' => ['metadata.key3' => ''], ] ); $after = $gridfs->findOne(); echo 'metadata is now '; var_dump($after->file['metadata']); echo "bytes are now {$after->getBytes()}\n";
打印
metadata is array(3) { 'key1' => string(5) "Hello" 'key2' => string(3) "Mr." 'key3' => string(5) "Smith" } bytes are 123456 metadata is now array(2) { 'key1' => string(5) "Hello" 'key2' => string(3) "Bob" } bytes are now 7890
更新了块而没有删除它们(除非有额外),以及文件doc。主要优点是速度。请留意系统并发访问的任何副作用。mongo-lock-php 库可能有所帮助!
贡献
如果您想贡献,请使用构建过程进行任何更改,并在构建通过后,在github上发送pull请求!
./build.php