Java 查询以从mongoDB获取结果
我在MongoDB中有以下收藏Java 查询以从mongoDB获取结果,java,spring,mongodb,Java,Spring,Mongodb,我在MongoDB中有以下收藏 "userDetails" : [ { "user" : DBRef("users", "RAVI"), "class1" : DBRef("classes", "1"), "class2" : DBRef("classes", "2") }, { "user" : DBRef("users", "TEJA")
"userDetails" : [
{
"user" : DBRef("users", "RAVI"),
"class1" : DBRef("classes", "1"),
"class2" : DBRef("classes", "2")
},
{
"user" : DBRef("users", "TEJA"),
"class1" : DBRef("classes", "1"),
"class2" : DBRef("classes", "2")
}]
classes
{
"_id" : "1",
"maxScore" : "50",
"subject" : DBRef("subjects", "class1")
}
{
"_id" : "2",
"maxScore" : "80",
"subject" : DBRef("subjects", "class2")
}
users{
"_id" : "RAVI",
"address" : "3-2-2222",
"lastClass" : "1"
"lastScore" : ""
}
{
"_id" : "TEJA",
"address" : "5-23",
"lastClass" : "1"
}
从java程序中,我想查询这样的信息,当我将输入作为用户名传递时,我想获取该用户及其类的所有详细信息。有人能帮我解决这个问题吗?
以前我试过
BasicDBObject fields = new BasicDBObject("userDetails", 1).append("userDetails", new BasicDBObject("$elemMatch", new BasicDBObject("user.$id", "RAVI")));
BasicQuery query = new BasicQuery(new BasicDBObject(), fields);
List<UserDetails> usrDetailsList = mongoTemplate.find(query, UserDetails.class);
BasicDBObject字段=新的BasicDBObject(“userDetails”,1)。追加(“userDetails”,新的BasicDBObject(“elemMatch”,新的BasicDBObject(“user.$id”,“RAVI”)));
BasicQuery=新建BasicQuery(新建BasicDBObject(),字段);
List usrDetailsList=mongoTemplate.find(查询,UserDetails.class);
我只做了一点小改动就得到了解决方案。我删除了id前面的$
符号,然后得到了答案
BasicDBObject fields = new BasicDBObject("userDetails", 1).append("userDetails", new BasicDBObject("$elemMatch", new BasicDBObject("user.id", "RAVI")));
BasicQuery query = new BasicQuery(new BasicDBObject(), fields);
List<UserDetails> usrDetailsList = mongoTemplate.find(query, UserDetails.class);
BasicDBObject字段=新的BasicDBObject(“userDetails”,1)。追加(“userDetails”,新的BasicDBObject(“elemMatch”,新的BasicDBObject(“user.id”,“RAVI”));
BasicQuery=新建BasicQuery(新建BasicDBObject(),字段);
List usrDetailsList=mongoTemplate.find(查询,UserDetails.class);
但我陷入了另一个问题,我想根据主题id搜索我的查询,如下所示
BasicDBObject fields = new BasicDBObject("userDetails", 1).append("userDetails", new BasicDBObject("$elemMatch", new BasicDBObject("class1.$subject.$id", "class1")));
BasicQuery query = new BasicQuery(new BasicDBObject(), fields);
List<UserDetails> usrDetailsList = mongoTemplate.find(query, UserDetails.class);
BasicDBObject字段=新的BasicDBObject(“userDetails”,1)。追加(“userDetails”,新的BasicDBObject(“class1.$subject.$id”,“class1”);
BasicQuery=新建BasicQuery(新建BasicDBObject(),字段);
List usrDetailsList=mongoTemplate.find(查询,UserDetails.class);
我只做了一点小改动就得到了解决方案。我删除了id前面的$
符号,然后得到了答案
BasicDBObject fields = new BasicDBObject("userDetails", 1).append("userDetails", new BasicDBObject("$elemMatch", new BasicDBObject("user.id", "RAVI")));
BasicQuery query = new BasicQuery(new BasicDBObject(), fields);
List<UserDetails> usrDetailsList = mongoTemplate.find(query, UserDetails.class);
BasicDBObject字段=新的BasicDBObject(“userDetails”,1)。追加(“userDetails”,新的BasicDBObject(“elemMatch”,新的BasicDBObject(“user.id”,“RAVI”));
BasicQuery=新建BasicQuery(新建BasicDBObject(),字段);
List usrDetailsList=mongoTemplate.find(查询,UserDetails.class);
但我陷入了另一个问题,我想根据主题id搜索我的查询,如下所示
BasicDBObject fields = new BasicDBObject("userDetails", 1).append("userDetails", new BasicDBObject("$elemMatch", new BasicDBObject("class1.$subject.$id", "class1")));
BasicQuery query = new BasicQuery(new BasicDBObject(), fields);
List<UserDetails> usrDetailsList = mongoTemplate.find(query, UserDetails.class);
BasicDBObject字段=新的BasicDBObject(“userDetails”,1)。追加(“userDetails”,新的BasicDBObject(“class1.$subject.$id”,“class1”);
BasicQuery=新建BasicQuery(新建BasicDBObject(),字段);
List usrDetailsList=mongoTemplate.find(查询,UserDetails.class);
到目前为止您尝试了什么?到目前为止您尝试了什么?我在collection附近遇到错误。find()表示找不到符号集合。What is collection herecollection此处是DBCollection类的对象,它引用mongodb数据库中的集合(表)。我在collection.find()附近遇到错误指示找不到符号集合。此处的集合是DBCollection类的对象,它引用mongodb数据库中的集合(表)。