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

MongoDB将_id保存为字符串(java)

孟英叡
2023-03-14

我有一个对象,它的父类可以设置_id字段,也可以不设置。

在这种情况下,没有设置_id字段,我将一个对象传递给

收集insertOne(对象)

通常情况下,mongo会为未指定的_id生成一个ObjectId(),但由于某种原因,每当_id由父类指定且未设置时,它会生成一个id,bug会将id保存为数据库中的字符串,而不是ObjectId。

我所经历的

{“name”:“name”}

预期:

{“_id”:ObjectId(“5cb89a7cf5e722a3d493ce8b”),“name”:“name”}

实际:

{u id:“5cb89a7cf5e722a3d493ce8b”,“name:“name”}

我认为正在发生的是,它看到父类有一个_id字段,但找不到它,导致类似这样的东西被传递。

{“_id”:null,“name”:“name”}

因此,mongo不会生成ObjectId,而是生成一个字符串。

这是虫子吗?

提前感谢!

共有1个答案

高豪
2023-03-14

我认为这是mongoDB的正常行为。我只在javascript中使用mongo,这是它总是显示的行为。我想知道这是否真的对你的usecase有什么不同,因为id仍然是唯一的

 类似资料:
  • 我想在Review类中将_id保存为ObjectId,但当我查询它时,我希望它显示为字符串,而不是{“timestamp”、“machineIdentifier”等。) 以下是我的课程: mongodb中的类评论是一个嵌入式文档。 当我用_id作为字符串查询某个评论时,它返回null。如何在查询期间将ObjectId显示为字符串,但仍保持为ObjectId?

  • 我有以下收藏: 我试图将电影(及其所有细节)与用户状态和对该电影的感觉相匹配,并使用聚合: 其中返回: 我希望的结果是匹配user_status中的第一部电影,以获得最终结果: 我想我的下一步是: 但是它不起作用——不确定这个$addFields是否正确,我知道的一个问题是,我的第一个_id是一个ObjectId,第二个似乎是一个字符串。

  • 在我的模式文件中,我试图将类型属性设置为数组。正如这里所见 尽管出于某种原因,当我试图保存文档时,它会将文档保存为字符串,即使它是数组中的元素,它仍会返回字符串。这是我保存文档的代码; 这是在网站中查看的猫鼬模式https://i.stack.imgur.com/TACoo.png 我在mongoose方面不是最棒的,但是,我确信有些事情发生了,但是我没有将文档保存到任何其他地方,而是仍然保存一个

  • 在Julia0.4中,我有一个名为variablex的变量,其中

  • 我想将pandas数据帧保存为csv文件,问题是要将np.array转换为字符串。 我想将数组保存为数组,但在文档中找不到任何有用的内容。 解数独=[123345894324321321](整数列表) n_splits=3(整数) 最终结果应该是: [123 345 894 324 321 321] 1,[123 345 894 324 321 321] 3,[123 345 894 324 32

  • 查询:{“日期”:{“$GTE”:“2021-07-22T03:00:00”,“$LTE”:“2021-07-23T03:00:00”},“isdeleted”:false},字段:{},排序:{} 将字符串转换为数据格式,如下所示,我只得到时间戳 DateFormat originalFormatData=new SimpleDateFormat(“yyyy-mm-dd't'hh:mm:ss”,