如何解决使用Java驱动程序更新MongoDB的数据时,内部对象的_id将id替换
我正在尝试更新MongoDB的对象。我正在使用Java驱动程序(同步)。
“创建”操作后,数据将按以下方式持久保存:
table[0][0]
现在,我想修改图像数组的'id'参数。因此,我使用{
"_id" : ObjectId("5f2b7deb62798d1045a47313"),"name" : "John","other_info" : {
"images" : {
"images" : [
{
"id" : "1","imgType" : "IDBACKIMAGE"
},{
"id" : "2","imgType" : "SIGCARDIMAGE"
}
]
},},"status" : "PENDING"
}
更新了数据,但该数据的持久性如下:
getCollection().updateOne(filterCondition,combine(updateData))
正如您在更新的数据中看到的那样,更新操作后,图像数组的'id'属性现在为'_id'。我已经为JSON提供了'id'字段,但是以某种方式,Mongo Client认为'id'为'_id'并保留了'_id'。当也使用{
"_id" : ObjectId("5f2b7deb62798d1045a47313"),"other_info" : {
"images" : {
"images" : [
{
"_id" : "3",{
"_id" : "4","status" : "PENDING"
}
时会发生这种情况。如上所见,创建操作不会发生这种情况。完成更新操作时,这是预期的行为吗?为什么MongoDB会将'id'和'_id'视为相同?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。