mongodb - 从 fs.files 中投影一列

标签 mongodb spring-data-mongodb

我想执行此查询:

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)

关于mongodb - 从 fs.files 中投影一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29241620/

相关文章:

javascript - 为什么mongodb的find()方法无法找到Nodejs中最近插入的文档

javascript - 弃用警告 : Unhandled promise rejections are deprecated

mongodb - 澄清有关 MongoDB 的问题

spring-data - 额外的引号被添加到 @Query

java - 如何在 spring-data-mongodb 中获取失败的@Indexed(unique=true)

regex - Morphia mongoDB 通配符查询

node.js - 确定 MongoClient 实例是否已连接

java - 如何在 MongoDb 中保存时间戳类型值 | java

spring - 有没有办法在spring webflux和spring data reactive中实现分页

java - 在 spring-data 中为 MongoDB 配置 GridFS 模板