只返回特定字段的结果- Mongodb java



你好,我使用MONGODB java驱动程序版本4.5.1,我创建了一个方法来查询文档并抓取特定字段。

(id为不和谐音id而不是文档id)

final MONGODB mongodb = new MONGODB();
public ArrayList<Document> getRoom(long id) {
ArrayList<Document> results = mongodb.collection.find(
new Document("id",id)
).projection(
new Document("room",1)
).into(new ArrayList<>());
System.out.println(results.size());
for (Document result : results) {
System.out.println(result);
}
return results;
}

这个回报Document{{_id=6276ed329a9a491cc223ae32, room=pt pt pt pt pt nl pt pt pt pt pt nl pt pt pt pt pt nl pt pt pt pt pt nl pt pt pt pt pt nl}}

我希望改善这一点,只让它返回房间=的内容,而不是_id字段

这个术语是投影,你可以看看:https://www.mongodb.com/docs/manual/tutorial/project-fields-from-query-results/

如文档所示;

您可以通过在投影中将_id字段设置为0来从结果中删除,如下例所示:

findIterable = collection.find(eq("status", "A"))
.projection(fields(include("item", "status"), excludeId()))

我通过添加.append("id",0)到投影

public ArrayList<Document> getRoom(long id) {
ArrayList<Document> results = mongodb.collection.find(
new Document("id",id)
).projection(
new Document("room",1).append("_id",0)
).into(new ArrayList<>());
System.out.println(results.size());
for (Document result : results) {
System.out.println(result);
}
return results;
} 

现在返回我需要的内容Document{{room=pt pt pt pt pt nl pt pt pt pt pt nl pt pt pt pt pt nl pt pt pt pt pt nl pt pt pt pt pt nl}}

最新更新