列出集合中的特定数据

时间:2012-12-22 20:53:36

标签: mongodb spring-data mongodb-java

我有一个管理员表格,如下所示:

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

1 个答案:

答案 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);