【发布时间】:2020-01-28 18:19:02
【问题描述】:
我正在使用可以接收非常大的对象并尝试将其保存在 MongoDB 数据库中的 Spring Boot api。因此,程序有时会抛出下一个错误:
org.bson.BsonMaximumSizeExceededException: Payload document size is larger than maximum of 16793600.
我听说 MongoDB 只允许大小低于 16MB 的对象,这对我的系统来说非常不方便,因为对象很容易超过这个差距。为了解决这个问题,我阅读了有关 GridFS 的信息,该技术允许超过 16MB 的文件间隙。
现在我正在尝试在我的系统中实现 GridFS,但我只看到使用文件保存在数据库中的示例,如下所示:
gridFsOperations.store(new FileInputStream("/Users/myuser/Desktop/text.txt"), "myText.txt", "text/plain", metaData);
但我想做的不是从文件中获取数据,而是到api接收对象并保存,如下所示:
@PostMapping
public String save(@RequestBody Object object){
DBObject metaData = new BasicDBObject();
metaData.put("type", "data");
gridFsOperations.store(object, metaData);
return "Stored successfully...";
}
这是一种可行的方法吗?
【问题讨论】:
标签: java mongodb spring-boot gridfs