使用PHP,使用BSON

问题描述:

如何节省超过16MB的图像更小的MongoDB中,我需要一些帮助:使用PHP,使用BSON

我PHP创建Web应用程序和使用数据库MongoDB的。

因为它是一个银行nosql有想法,我需要将图像保存在适当的数据库。

在mongoDB文档的研究中,我发现我需要使用BSON类型来保存银行,因为它的图像小于16mb。

问题是我不知道如何。

我需要转换图像。 JPG中的字符串? 然后使用bson_encode?

我想是这样的:

$data = file_get_contents('../images/1.png'); 

$connection = new Mongo(); 

$db = $connection->aaaa; 

$suspeitos = $db->imagens; 

$susp = array(  
'imagem' => $data, 
); 

$suspeitos->insert($susp); 

但是,这是行不通的。

有人已经做了类似的事情,并可以帮助我保存与BSON mongoDB中的图像?

感谢

+0

保存图像直接在数据库中,数据库的类型regaurdless通常是一个坏主意。如果您确实想要将文件存储在mongo中,请使用Mongo GridFS。 – datasage 2013-02-20 17:57:00

的MongoDB在文件系统构建呼吁内的MongoDB本身存储文件GridFS的。您将获得Shards和MongoDB的复制和查询的所有优点。这些文件被分解为大块,因此您不会遇到16MB文档大小的限制。

http://php.net/manual/en/class.mongogridfs.php

+0

那么即使对于少于16MB的文件,最好的方法仍然是使用GridFS? – 2013-02-20 18:00:47

+0

“最好”是一个相对术语,但是可以使用GridFS为用户存储简档图像,即使它们非常小。 – SomethingOn 2013-02-21 02:01:32