为什么我的查询返回所有字段?

时间:2015-07-28 12:05:35

标签: mongodb spring-data-mongodb

我需要找到调用dados的特定字段,这完全有效,但会将所有字段返回给我。
我如何才能返回dados字段?

@Query("{\"dados\": {$ne: null}}, {\"dados\": 1}")
List<Contato> findOnlyDados();

实体(没有getter和setter)

     @Document
     public class Contato {

        @Id
        private String id;
        String nome;
        List<Info> dados;
        @DBRef
        Agencia agencia;

    static class Info {
        String campo;
        String valor;
    }

   }

当我发出GET请求时

{
  "_links": {
    "self": {
      "href": "http://localhost:8181/api/contatos/search/findOnlyDados"
    }
  },
  "_embedded": {
    "contatos": [
      {
        "nome": "Contato one",
        "dados": [
          {
            "campo": "teste um",
            "valor": "fmdsf"
          },
          {
            "campo": "dois",
            "valor": "bdfbfd"
          }
        ],
        "_links": {
          "self": {
            "href": "http://localhost:8181/api/contatos/55b66de7ccf21a7a1cfcd403"
          },
          "agencia": {
            "href": "http://localhost:8181/api/contatos/55b66de7ccf21a7a1cfcd403/agencia"
          }
        }
      },
      {
        "nome": "Contato bgf",
        "dados": [
          {
            "campo": "teste jghj",
            "valor": "ytrf"
          },
          {
            "campo": "jhjhn",
            "valor": "bdfbfd"
          }
        ],
        "_links": {
          "self": {
            "href": "http://localhost:8181/api/contatos/55b66dfeccf21a7a1cfcd404"
          },
          "agencia": {
            "href": "http://localhost:8181/api/contatos/55b66dfeccf21a7a1cfcd404/agencia"
          }
        }
      }
    ]
  }
}

1 个答案:

答案 0 :(得分:1)

要限制查询返回的字段,请使用fields注释的@Query属性。