有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Spring Data MongoDB查询中使用投影只返回数组中匹配的对象?

我收集了以下文件样本:

{
  filename : "file";
   filename_exlucde : "exclude";
   product : Array
       0: object{
          x : "11",
          y :  "11",
          z :  "13"
          }
        1: object{
             x : "11",
             y : "12",
             z : "13"
         }
         2 : object{
             x : "12",
             y : "13",
             z : "14"
         }
}

我使用以下代码创建查询

private Query createQuery(){
   Query query = new Query();
   query.fields().include("filename");
   Criteria xcriteria = Criteria.where("x").is("11");
    query.fields().elemMatch("product", xcriteria).include("product.x");
    query.fields().elemMatch("product", xcriteria).include("product.y");
    return query;
}

public List<Data> getData(){
        Query query = createQuery();
        return mongoTemplate.find(query, Data.class)
       
    }

问题是只从数组中检索一个元素,而不是两个元素,并且数组中嵌入对象中的所有字段都被包括在内

预期产量

{
    filename : "file"
    product : Array
    0: object{
          x : "11",
          y :  "11"
          }
        1: object{
             x : "11",
             y : "12"
         }
}

共 (0) 个答案