如何查询字段而不是整个对象?我想做那样的事情,想看到那可能吗?
public BigInteger findUserIDWithRegisteredEmail(String email){
Query query = Query.query(Criteria.where("primaryEmail").is (email));
query.fields().include("_id");
return (BigInteger) mongoTemplate.find(query, BigInteger.class);
}
答案 0 :(得分:6)
方法
find(Query query, Class<YourCollection> entityClass)
entityClass 应该是相应的集合,而不是id的类型。
如果您只是想尝试使用
Query query = Query.query(Criteria.where("primaryEmail").is (email));
query.fields().include("_id");
mongoTemplate.find(query, <YourCollection>.class).getId();
如果您只包含_id,则结果中的所有其他字段都将为空。
答案 1 :(得分:0)
如果您想避免序列化,这是您可以处理它的一种方法: -
final List<String> ids = new ArrayList<String>();
mongoTemplate.executeQuery(query, "collectionName", new DocumentCallbackHandler() {
@Override
public void processDocument(DBObject dbObject) throws MongoException, DataAccessException {
ids.add(dbObject.get("_id").toString());
}
});