问题描述
我正在尝试更新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 (将#修改为@)