引用mongodb中列表中的元素

时间:2014-02-14 10:00:35

标签: java mongodb

我有一个文件,我想获取目录

我的mongo表目录以这种方式构建:

0
   _id
   _class
   listOfFiles[2]
                -0
                      $ref       File
                      $id        idmongodb1   
                -1
                      $ref       File 
                      $id        idmongodb2 
1
   _id
   _class
   listOfFiles[1]
                -0
                      $ref       File
                      $id        idmongodb3   

我想知道如何通往idmongodb(1或2或3)

我的查询可以:

    Query query = new Query();
    query.addCriteria(
            new Criteria().andOperator(

            Criteria.where("listOfFiles.$id").is(new ObjectId(file.getId()))
            )

    );

    return  mongoTemplate.findOne(query,Directory.class);

工作?

我想要确认。

在我的JavaCode中,相应的类目录以这种方式建立

  public class Directory{

       public List<File> listOfFiles;   

 }

由于

2 个答案:

答案 0 :(得分:1)

尝试$elemMatchhttp://docs.mongodb.org/manual/reference/operator/query/elemMatch)查询集合中的元素。

答案 1 :(得分:0)

查询

 Query query = new Query();
query.addCriteria(
        new Criteria().andOperator(

        Criteria.where("listOfFiles.$id").is(new ObjectId(file.getId()))
        )

);

return  mongoTemplate.findOne(query,Directory.class);

实际上有效