Я хочу хранить документы изображений в MongoDB. Я использую java.
Любые ссылки или предложения будут оценены.
Я хочу хранить документы изображений в MongoDB. Я использую java.
Любые ссылки или предложения будут оценены.
Для хранения двоичных данных, таких как изображения, вы можете использовать GridFS или реализовать собственную реализацию; Загрузите драйвер и посмотрите на src/test/com/mongodb/gridfs/GridFSTest.java
;)
Редактировать: вам повезло сегодня! Я сделал для вас полный код;) Наслаждайтесь!
package mongodb.testing.java;
import com.mongodb.*;
import com.mongodb.gridfs.*;
import java.io.*;
public class Main {
public static byte[] LoadImage(String filePath) throws Exception {
File file = new File(filePath);
int size = (int)file.length();
byte[] buffer = new byte[size];
FileInputStream in = new FileInputStream(file);
in.read(buffer);
in.close();
return buffer;
}
public static void main(String[] args) throws Exception {
//Load our image
byte[] imageBytes = LoadImage("C:/Temp/bear.bmp");
//Connect to database
Mongo mongo = new Mongo( "127.0.0.1" );
String dbName = "GridFSTestJava";
DB db = mongo.getDB( dbName );
//Create GridFS object
GridFS fs = new GridFS( db );
//Save image into database
GridFSInputFile in = fs.createFile( imageBytes );
in.save();
//Find saved image
GridFSDBFile out = fs.findOne( new BasicDBObject( "_id" , in.getId() ) );
//Save loaded image from database into new image file
FileOutputStream outputImage = new FileOutputStream("C:/Temp/bearCopy.bmp");
out.writeTo( outputImage );
outputImage.close();
}
}
Для небольших (‹1 МБ) изображений я бы предложил хранить их в двоичном поле (byte[] в java); если у вас есть файлы большего размера, GridFS будет работать лучше.
Я храню множество эскизов в своих документах напрямую, используя простое двоичное поле.
Я использую Morphia (http://code.google.com/p/morphia) для хранения своих POJO.
{ "name" : "Tamil", "age" : 23, "Images"{"image1" : 123.jpg, "image2": abc.jpg}}
, как мне это сделать с помощью java
- person ; 23.11.2010
Ну, насколько я знаю, вы не можете хранить изображения в mongodb, вы можете хранить ссылки на изображения. И я не под кайфом, когда говорю это, если изображения маленькие, например, 100x100 пикселей, вы можете попробовать сохранить изображение в двоичном формате и преобразовать изображение на лету. Но рендеринг изображений займет некоторое время, поэтому я предлагаю вам сохранить ссылку, просто получить это изображение и заполнить его динамически.
Вы можете использовать GridFS для хранения больших двоичных объектов.
Поскольку вы новичок в mongoDB, взгляните на:
Вы также всегда можете спросить на SO, я тоже новичок в mongoDB и не против помочь новичку: D