我有一个管理员表格,如下所示:
{ "_id" : "userID1", "_class" : "com.test.Admin", "projectList" :
[ { "projectID" : "project1" },
{ "projectID" : "project2" }
] }
{ "_id" : "userID2", "_class" : "com.test.Admin", "projectList" :
[ { "projectID" : "project3" },
{ "projectID" : "project4" }
] }
我需要一种方法来列出Admin集合中的所有项目(即从每个文档中获取所有“projectList”) 我怎样才能使用java驱动程序进行一次查询来获取只有数据的所有projectList!
我使用的当前方法是获取所有管理员。 然后编写一些java代码来获取每个Admin的所有项目。 但是,我不喜欢我目前的做法。
答案 0 :(得分:0)
将其翻译成Java驱动程序:
db.admin.find({ projectList : {$exists : true}}, {projectList: 1})
检查每个projectList属性是否存在,然后使用projection,只返回每个匹配文档的projectList属性。
可能类似(我从未使用过Java驱动程序):
query = new BasicDBObject("projectList", new BasicDBObject("$exists", true));
cursor = find(query, BasicDBObject("projectList", 1);