如何通过MongoDB获取用户集合的_id列表?附JPA查询类比
MongoDB提取_id属性获取ID列表的方法
1. MongoDB Shell 实现方式
你可以通过**投影(Projection)**指定仅返回_id字段,执行以下命令:
// 查询所有文档,仅返回_id字段 db.yourCollectionName.find({}, { _id: 1 })
如果需要直接得到纯ID数组,可结合map方法处理结果:
// 将查询结果转换为纯ID数组 db.yourCollectionName.find({}, { _id: 1 }).map(doc => doc._id)
说明:第一个空对象{}表示匹配集合中所有文档;第二个对象{ _id: 1 }指定仅包含_id字段(1代表包含,0代表排除)。
2. Spring Data MongoDB 注解查询(对应JPA示例逻辑)
和你提供的JPA注解写法对应,Spring Data MongoDB可以这样定义查询方法:
@Query(value = "{}", fields = "{ '_id' : 1 }") Set<String> findAllIds();
也可以用更简洁的派生查询方式:
Set<ObjectId> findAllByIdNotNull();
3. Java MongoDB Driver 原生实现
如果使用原生Java驱动,代码示例如下:
MongoCollection<Document> collection = mongoDatabase.getCollection("yourCollectionName"); List<ObjectId> idList = collection.find() .projection(Projections.include("_id")) .map(doc -> doc.getObjectId("_id")) .into(new ArrayList<>());
内容的提问来源于stack exchange,提问作者Aymen Kanzari
相关产品推荐
相关产品推荐

