您好我是MongoDB的新手,但在java中经验丰富。
我现在正试图通过java应用程序从我的MongoDB获取数据,但是我在从子文档中检索数据时遇到了麻烦,并且希望能够帮助理解它是如何工作的以及如何做到这一点。
修改
为我提供团队名称的测试代码。
BasicDBObject queryTeam = new BasicDBObject("team", team);
FindIterable<Document> foundTeam = db.getCollection("teams").find(queryTeam);
MongoCursor<Document> cursor = foundTeam.iterator();
while(cursor.hasNext())
{
Document tmp = cursor.next();
return tmp.get("team").toString();
}
我有兴趣获取谁在团队中聘请了一名specefic玩家的信息。玩家在子文档中并具有一些属性(参见imgur链接)。 我有兴趣获取属性hiredBy,我的问题是你如何在java中做到这一点?
集合的结构:http://imgur.com/a/r8hom
您可以轻松创建集合布局的提示:http://www.jsoneditoronline.org/
解
DistinctIterable<Document> players = db.getCollection("teams").distinct("Players", Document.class);
返回所有玩家,我可以在java中查看它们并查看是谁创建的。
主持人可以将此问题标记为已解决。上面解决了这个问题。
答案 0 :(得分:0)
你对子文档的意思是什么?你能发布一个集合和文档结构的例子吗?
修改:出于某种原因,我无法在您的帖子上添加评论。所以,现在考虑一下这个答案。
答案 1 :(得分:0)
根据您的问题/评论和给出的结构,检查一下,
db.collectionName.findOne({"players.firstName":"Bengt"},{"players.hiredBy":1})
PS:当问题发生变化时会进行编辑。