java - 从 spring mongo 查询获取 "_id"而不是整个对象/对象列表

标签 java spring mongodb

我有一个 mongodb,它存储具有以下键的集合: ParentId、ChildId 及其自己的 ID(“_id”)。

当我使用 Spring Query 查询数据库时,我只想获取“_id”值,而不是满足查询的整个数据。


import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;

@Autowired
private MongoTemplate mongoTemplate;

Query query = new Query(Criteria.where("parentId").is(id1).and("childId").is(id2));
List<MyClass> child = mongoTemplate.find(query, MyClass.class);
List<String> currentId = new ArrayList<>;
for (int i = 0; i < child.size(); i++) {
    currentId.add(child.get(i).getId());
}

上面的代码给出了满足查询的对象列表。然后,我迭代这些对象并获取 ID,但我只想通过查询本身从这些对象中获取“_id”值。

最佳答案

要指定_id字段,您可以使用:query.fields().include("_id");

Query query = new Query(Criteria.where("parentId").is(id1).and("childId").is(id2));
query.fields().include("_id");
List<String> currentId = mongoTemplate.find(query, MyClass.class).stream().map(MyClass::getId).collect(Collectors.toList());

关于java - 从 spring mongo 查询获取 "_id"而不是整个对象/对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58171812/

相关文章:

java - 字长频率计数器

java - 在我的 spring 3.2 测试中 Autowiring webapplicationcotnext

java - 无法让 Autowired 工作或进行组件扫描

mongodb mongorestore 断言失败

node.js - 慢速查询会阻塞快速查询,直到执行慢速查询为止 : MongoDB with NodeJs driver

java - Firebase查询不返回它匹配的值

java - 是否能够通过 docker swarm 或 kubernetes 停止和启动特定服务?

java - SDN4 不返回嵌套实体

eclipse - 为什么在 Eclipse 中 Maven "Add Spring project Nature"之后必须始终是 "Update Project Configuration"?

node.js - 使用 Mongoose 和 Redux 删除记录