1

我有一个 Admin 表,如下所示:

{ "_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的所有项目。但是,我不喜欢我目前的做法。

4

1 回答 1

0

将其转换为您的 Java 驱动程序:

db.admin.find({ projectList : {$exists : true}}, {projectList: 1})

它检查每个 projectList 属性是否存在,然后使用投影,只返回每个匹配文档的 projectList 属性。

可能类似于(我从未使用过 Java 驱动程序):

query = new BasicDBObject("projectList", new BasicDBObject("$exists", true));

cursor = find(query, BasicDBObject("projectList", 1);
于 2012-12-22T23:03:24.670 回答