如何在MongoDB中使用GridFSInputFile和GridFS,而不使用add file和Java?
我正在开发一个应用程序,当一些用户可以添加一个目录并附加一个文件时,它是UI中的一个简单表单。在这种情况下,添加一个文件是可选的,但必须添加一个附件。 如果用户在comentary中添加文件。。。我有这个密码:
BasicDBObject metadata = new BasicDBObject();
metadata.put("_id", UUID.randomUUID().toString());
metadata.put("comentary", "Hola que hace");
metadata.put("date", (new Date().toString()));
metadata.put("applicationID", "1111-111");
GridFS gridFS = new GridFS(mongoTemplate.getDb(), "noteAndFile");
GridFSInputFile gfsFile = gridFS.createFile(file);
gfsFile.put("metadata", metadata);
gfsFile.save();
这段代码可以工作,但是用户没有添加文件,我有:
BasicDBObject metadata = new BasicDBObject();
metadata.put("_id", UUID.randomUUID().toString());
metadata.put("comentary", "Segundo persist");
metadata.put("date", (new Date().toString()));
metadata.put("applicationID", "2222-222");
GridFS gridFS = new GridFS(mongoTemplate.getDb(), "noteAndFile");
GridFSInputFile gfsFile = gridFS.createFile();
gfsFile.put("metadata", metadata);
gfsFile.save();
但是返回nul。我肯定需要使用这种方式,以获得一个评论列表,有或没有文件附件
BasicDBObject allComentaryWithOrNotFileAttach = new BasicDBObject();
List<GridFSDBFile> files = gridFS.find(allComentaryWithOrNotFileAttach);
我该怎么做
# 1 楼答案
我认为这里唯一缺少的是一个没有文件附件的“空”输入流。这很容易解决:
当我在贝壳里寻找时:
当然,因为这里的“bytestream”是空的,所以“chunks”集合没有关联的对象。但这是意料之中的
所以,你可以随时抓取这个对象,并添加真正的内容,如果它变得可用时