如何让mongodb返回一个带有@id和没有href的对象?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让mongodb返回一个带有@id和没有href的对象?相关的知识,希望对你有一定的参考价值。

如标题所述,我使用mongodb保存对象,我的@id字符串有问题。当我想要它在我的对象中时,@ id会发送一种包装器。所以,在阅读我的Json时,我获得了类似的东西:

[
{
"id": null,
"login": "ASmith",
"firstName": "Alice",
"lastName": "Smith",
"fonctions": [
{
"id": null,
"name": "forgeron",
"access": [
{
"id": null,
"name": "Forge",
"role": "admin"
}
]
}
],
"access": [],
"telephone": "no telephone",
"fax": "no fax",
"filiale": "no filiale"
}
]

有不同类型的对象,但清楚地看到所有@id都为null。事实是它们不是作为数据发送的。

{
  "_embedded" : {
    "utilisateur" : [ {
      "login": "ASmith",
      "firstName" : "Alice",
      "lastName" : "Smith",
      "fonctions" : [ {
        "name" : "forgeron",
        "access" : [ {
          "name" : "Forge",
          "role" : "admin"
        } ]
      } ],
      "access" : [ ],
      "telephone" : "no telephone",
      "fax" : "no fax",
      "filiale" : "no filiale",
      "_links" : {
        "self" : {
          "href" : "http://server:8081/utilisateur/5979957976a6f114b8760688"
        },
        "utilisateur" : {
          "href" : "http://server:8081/utilisateur/5979957976a6f114b8760688"
        }
      }
    },

但在元数据中作为链接(出于导航目的,我想)。

在我的RestController中我有类似的东西:

@RequestMapping("utilisateurs")
    public Collection<Utilisateur> hi() {
        return ( utilisateurRepo.getUtilisateurs().getContent());
    }

哪个“解包”数据,失去了我的@ids ...所以我怎么能只用一个简单的JSON来获取我的所有数据而没有包装或其他废话?我搜索了一天但发现没有人遇到这种问题。

谢谢,

答案

好吧,最后对于我的情况,事实是我的id没有发回,因为mongo保存它有“_id”为mongo目的。因此,如果您将您的ID记录为“_id”,则该链接是安全的,并且mongo会将其发回。

编辑:嗯,最后问题是springRest不想暴露ID。所以你必须要求他这样解释:https://jira.spring.io/browse/DATAREST-161

以上是关于如何让mongodb返回一个带有@id和没有href的对象?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 MongoDB 作为唯一/枚举存储

带有承诺的 MongoDB 查询不执行 if 语句(MongoDB node.js 驱动程序)

新手得到_id返回查询

求助啊,tp下,mongodb如何查询后只返回某个字段值

带有 C#Driver 的 MongoDB:如何过滤嵌套对象数组中的字段

在 MongoDB 中查找所有带有 * 的文档