You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java MongoTemplate实现MongoDB按条件查询返回指定字段

MongoDB指定返回字段的实现方案

你当前编写的查询未配置投影规则,默认会返回匹配文档的全部字段,要实现仅返回collection_billId的效果,只需在Query对象上添加投影配置即可。

对应Java代码

场景1:collection_billId是集合根级字段(与Collection字段同层级)

Query query = new Query();
// 拼接查询条件
query.addCriteria(Criteria.where("Collection.collection_billDate").is("test"));
// 配置返回字段规则
query.fields()
        .include("collection_billId") // 仅返回collection_billId
        .exclude("_id"); // MongoDB默认返回_id字段,不需要可加这行排除,需要则删除
List<BAN> banList = mongoTemplate.find(query, BAN.class, CollectionName);

场景2:collection_billId是Collection嵌套对象下的字段

如果collection_billId和collection_billDate同属Collection嵌套结构,只需调整投影的字段路径即可:

Query query = new Query();
query.addCriteria(Criteria.where("Collection.collection_billDate").is("test"));
query.fields()
        .include("Collection.collection_billId")
        .exclude("_id");
List<BAN> banList = mongoTemplate.find(query, BAN.class, CollectionName);

规则说明

  • 投影配置中调用include()指定需要返回的字段后,除默认自带的_id外,其余未指定的字段都不会返回
  • 嵌套字段的路径规则和查询条件的路径规则完全一致,必须和MongoDB中实际存储的文档结构匹配
  • 如果你使用的BAN实体类做了字段映射,要保证投影里写的字段名和映射后的MongoDB字段名一致,否则会取不到值

内容的提问来源于stack exchange,提问作者SorinS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 21:36:38