当前位置: 首页 > 知识库问答 >
问题:

使用“id”而不是“_id”完成MongoreRepository

宁侯林
2023-03-14
public class MyPojo {
  @Id
  private String id

  public MyPojo(String id) {
    this.id = id
  }

  //...
}
public interface MyPojoRepository extends MongoRepository<MyPojo, String> {

}
myrepo.save(new MyPojo("user"));

一切都工作得很好,在我的集合_id=“user”中,正如我所期望的那样。

但是,如果我现在想查询那个对象:

myrepo.findOne("user")

我收到null。调试日志显示用

//编辑:

myrepo.exists("user") 

返回true...

共有1个答案

滕璞瑜
2023-03-14

可以使用以下注释更改保存在MongoDB中的字段名:import org.springframework.data.MongoDB.core.mapping.field

通过使用注释,可以在MongoDB中定义字段名。

例如:

@Field("email")
private EmailAddress emailAddress;

现在emailAddress将使用密钥email保存在数据库中。

mongoDB将始终使用_id作为文档的唯一标识符之一。

在这种情况下,您可以使用另一个字段调用userId,它可以是_id字段的重复,但使用您喜欢的语法,例如:

@Field("id")
private String userId;
 类似资料:
  • 问题内容: 我正在使用猫鼬(节点),输出id而不是_id的最佳方法是什么? 问题答案: 我在执行此操作的模型上创建toClient()方法。这也是重命名/删除您不想发送给客户端的其他属性的好地方:

  • 当我试图根据下面的itemId更新MongoDB集合中的文档时,它工作得很好,并且能够从mongo ops日志中看到查询被转换为“itemIds中的_id”。 当我升级到spring-data-mongodb-2.1.5.release时,我在mongo日志中看到的查询是“item_id in itemids”。由于item_id不是一个字段,集合中也没有该字段的索引,因此查询需要花费很长时间才能

  • 我跟随Simon Holmes的《变得卑鄙》一书,但是,我偶然发现了一个关于子文档ID的问题。我试图使用mongoose文档提供的“MongooseDocumentArray.id(id)helper函数在“Location document”中请求“review document”。但是,我的所有子文档都生成“id”,但前面提到的函数需要“_id”,因此返回“null”对象。 函数说明:搜索数组

  • 我正在尝试使用Python来web抓取一个网站,通过使用嵌入式javascript文件动态加载HTML,将数据作为响应呈现到HTML中。因此,如果我单独使用BeautifulSoup,我将无法检索我所需的数据,因为我的程序将在Javascript加载数据之前将其删除。因此,我将selenium库集成到我的代码中,以使我的程序在抓取网站之前等待找到某个元素。 我最初是这样做的: 但我想指定一个类,而

  • 问题内容: 问题描述 除其他事项外,我对模糊进行了管理,我想仅将其用于属性。问题是,如果设置为,它将完成并删除所有我想保留的动画。 基本上,我不希望动画师完成,因为这会清除其动画块。 考虑的解决方法 完成后重新添加动画 夹到类似 问题答案: 现在可以使用iOS11进行设置 在 当此属性的值为true时,动画制作结束时动画制作器将保持活动状态,并且不执行其完成处理程序。保持动画师处于活动状态,即使动

  • null 我认为一种既长又耗时的方法是,首先找到带有给定url的提要,然后遍历所有子文档,以找到满足的文档,然后检查是否满足,如果满足,则更新comment对象。但是,我想一定有更简单的方法来做到这一点?我已经试过了- 可从http://www.tagwith.com/question_305575_how-to-find-and-update-subdocument-within-array-b