从 fs.files 投影一列

projection of one column from fs.files

我想执行这个查询:

db.fs.files.find({}, {filename: 1, _id: 0 })

使用 spring-data-mongodb(仅获取所有文件名)。

有人知道如何解决这个问题吗?

提前致谢。

选项 1

DBCollection fsCollection = template.getCollection("fs.files");
fsCollection.setObjectClass(null);
DBCursor cursor = fsCollection.find(new BasicDBObject(), new BasicDBObject("filename", 1).append("_id", 0));

while (cursor.hasNext()){
     final DBObject object = cursor.next();
     String filename = object.get("filename")

}

选项 2

@Autowired
MongoTemplate template;

@Document(collection="fs.files")
public class GridFsFile{

    @Id
    private ObjectId id;
    public ObjectId getId() { return id; }

    private String filename;
    public String getFilename() { return filename; }
}

Query query = new Query();
query.fields().include("filename").exclude("_id");
template.find(query, GridFsFile.class)