MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So erhalten Sie einen binären Stream von GridFS ObjectId mit Spring Data MongoDB

Darüber bin ich auch gestolpert. Und ich bin eigentlich ziemlich schockiert, dass das GridFsTemplate so entworfen wurde ... Wie auch immer, meine hässliche "Lösung" dafür bisher:

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);
}

Hinweis:Sie müssen die MongoDbFactory injizieren, damit dies funktioniert ...