mongodb更新数组中的单个对象
Posted
技术标签:
【中文标题】mongodb更新数组中的单个对象【英文标题】:mongodb update single object in array 【发布时间】:2019-04-29 18:33:22 【问题描述】:如何通过规则查询更新对象数组中的单个对象是该对象必须在具有 translation_key == 作为我读取的输入的文档中,并且对象必须具有相同的语言(id),否则我必须创建新对象。 (mongodb,猫鼬)
语言是必需的,并且在翻译中是唯一的
"_id" : ObjectId("5bfd5324725fb12bc4863cd8"),
"deleted" : false,
"deleted_at" : null,
"noAuth" : false,
"hidden" : false,
"translation_key" : "Standard",
"translation_type" : "text",
"translation" : [
"system" :
"android" : false,
"ios" : false,
"web" : false,
"api" : false
,
"language" : ObjectId("5bf52e06edb9902e2113d8b3"),
"text":'',
"active" : false,
"prepared_string" : false,
"_id" : ObjectId("5bfd910c2998d929644abd90"),
"params" : []
,
"system" :
"android" : false,
"ios" : false,
"web" : true,
"api" : false
,
"active" : false,
"prepared_string" : false,
"_id" : ObjectId("5bfdb5d22998d929644ac2af"),
"language" : ObjectId("5bf52e06edb9902e6471d8c1"),
"text" : "Standard",
"app_version" : "2.0",
"params" : []
],
"create_date" : ISODate("2018-11-27T14:22:28.635Z"),
"update_date" : ISODate("2018-11-27T14:22:28.635Z"),
"__v" : 3
【问题讨论】:
【参考方案1】:Model.findOneAndUpdate(
_id: "document_id",
"translation.language": "languageId",
,
$set:
"translation.$.text: "text",
"translation.$.active": "status",
"translation.$.system.android" : true
,
new: true, upsert: true,
)
.lean();
【讨论】:
以上是关于mongodb更新数组中的单个对象的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 MongoDB 在数组中的对象中更新数组中的对象中的文档?