mongodbアクセスピクチャファイル機能
3020 ワード
Mongodbは非関係型データベース(NoSql)であり、オブジェクト向けのアイデア(OOアイデア)がよく実現され、Mongo DBでは各レコードがDocumentオブジェクトである.Mongo DBの最大の利点は、すべてのデータ永続操作が開発者がSQL文を手動で作成する必要がなく、直接メソッドを呼び出すことでCRUD操作を簡単に実現できることです.
このブログでは、mongodbのストレージとファイルの読み取り方法について説明します.mongodbは、主にGridFSクラスを介してファイルを操作します.ストレージファイルは主にfsに格納され、fsはデータベースのデフォルトです.またGridFSはcollection集合とは無関係にデータベースと直接付き合っている.
MongoDBの文書構造はBJSON形式(BJSONフルネーム:Binary JSON)であり、BJSON形式自体がバイナリ形式のデータを保存することをサポートしているため、文書のバイナリ形式のデータを直接MongoDBの文書構造に保存することができる.ただし、1つのBJSONの最大長は4 Mを超えてはいけないため、1つのドキュメントに格納できる最大ファイルは4 Mを超えてはいけないことが制限されています.大容量ファイルへのアクセスをサポートするために、samusドライバは「GridFS」方式でサポートしています.メソッドコード:
このブログでは、mongodbのストレージとファイルの読み取り方法について説明します.mongodbは、主にGridFSクラスを介してファイルを操作します.ストレージファイルは主にfsに格納され、fsはデータベースのデフォルトです.またGridFSはcollection集合とは無関係にデータベースと直接付き合っている.
MongoDBの文書構造はBJSON形式(BJSONフルネーム:Binary JSON)であり、BJSON形式自体がバイナリ形式のデータを保存することをサポートしているため、文書のバイナリ形式のデータを直接MongoDBの文書構造に保存することができる.ただし、1つのBJSONの最大長は4 Mを超えてはいけないため、1つのドキュメントに格納できる最大ファイルは4 Mを超えてはいけないことが制限されています.大容量ファイルへのアクセスをサポートするために、samusドライバは「GridFS」方式でサポートしています.メソッドコード:
/**
*
* @param collectionName
* @param file
* @param fileid id
* @param companyid id
* @param filename
*/
public void SaveFile(String collectionName, File file, String fileid, String companyid, String filename) {
try {
DB db = mongoTemplate.getDb();
// fs
GridFS gridFS = new GridFS(db, collectionName);
GridFSInputFile gfs = gridFS.createFile(file);
gfs.put("aliases", companyid);
gfs.put("filename", fileid);
gfs.put("contentType", filename.substring(filename.lastIndexOf(".")));
gfs.save();
} catch (Exception e) {
e.printStackTrace();
System.out.println(" !!!");
}
}
//
public GridFSDBFile retrieveFileOne(String collectionName, String filename) {
try {
DB db = mongoTemplate.getDb();
// fs
GridFS gridFS = new GridFS(db, collectionName);
GridFSDBFile dbfile = gridFS.findOne(filename);
if (dbfile != null) {
return dbfile;
}
} catch (Exception e) {
// TODO: handle exception
}
return null;
}