Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查询以从mongoDB获取结果_Java_Spring_Mongodb - Fatal编程技术网

Java 查询以从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")

我在MongoDB中有以下收藏

 "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数据库中的集合(表)。