sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo obtener una transmisión binaria por GridFS ObjectId con Spring Data MongoDB

Me topé con esto, también. Y en realidad estoy bastante sorprendido de que GridFsTemplate haya sido diseñado así... De todos modos, mi fea "solución" a esto hasta ahora:

public GridFsResource download(String fileId) {
    GridFSFile file = gridFsTemplate.findOne(Query.query(Criteria.where("_id").is(fileId)));

    return new GridFsResource(file, getGridFs().openDownloadStream(file.getObjectId()));
}

private GridFSBucket getGridFs() {

    MongoDatabase db = mongoDbFactory.getDb();
    return GridFSBuckets.create(db);
}

Nota:Tienes que inyectar MongoDbFactory para que esto funcione...