Notas sobre GridFS e MongoDB
Durante o dia de hoje efetuamos vários testes com o GridFS do MongoDB. E, por mais simples que seja, achar documentação e exemplos desse monstro em C++ foi bem complicado.
Depois de escovar bits, analisar headers e analisar o código fonte do driver C++ do MongoDB, chegamos a um exemplo simples de armazenamento de arquivos genéricos no GridFS, alterando o Metadata do arquivo em questão. Esse é o exemplo que deu certo – se tiver alguma sugestão, comment! ![]()
Aproveitem!
...
#include "mongo/client/dbclient.h"
#include "mongo/client/gridfs.h"
using namespace mongo;
...
// pega o caminho completo do arquivo a ser salvo
m_NomeArquivo = ...;
QFileInfo info(m_NomeArquivo);
...
DBClientConnection c;
// conexão com o MongoDB, local.
c.connect("localhost");
// Mapeamos o GridFS com o prefixo que queremos
GridFS gfs = GridFS(c, "gridfs", "arquivos");
BSONObj retorno = gfs.storeFile(m_NomeArquivo.toStdString(), info.fileName().toStdString());
BSONObjBuilder b;
b.appendElements(retorno);
// Aqui incluímos qualquer informação que quisermos
b.append("arquivoInserido", "0001");
BSONObj o = b.obj();
// E atualizamos o registro do metadata no MongoDB
c.update("gridfs.arquivos.files", BSON("filename" << retorno.getField("filename")), o, false, false);
Syndicated 2010-10-16 00:35:01 (Updated 2010-10-25 22:50:43) from #include "ebf.h"
