更改MongoDB中嵌套数组的最后一个值
我有以下结构更改MongoDB中嵌套数组的最后一个值,mongodb,pymongo,Mongodb,Pymongo,我有以下结构 { "_id" : 2, "mem_id" : M002, "email" : "xyz@gmail.com", "event_type" : [ { "name" : "MT", "count" : 2, "language" : [ { "cast" : [
{
"_id" : 2,
"mem_id" : M002,
"email" : "xyz@gmail.com",
"event_type" : [
{
"name" : "MT",
"count" : 2,
"language" : [
{
"cast" : [
{
"name" : "Some Name 1",
"count" : 2
},
{
"name" : "Some Name 2",
"count" : 4
},
],
key: 0
},
{
"cast" : [
{
"name" : "Some Name 3",
"count" : 2
},
{
"name" : "Some Name 4",
"count" : 4
},
],
key: 1
}
]
}
]
}
我想更改“Some Name 2”的值。实际上,它总是嵌套数组“cast”的最后一个元素
我正在搜索键值以找到语言数组的正确索引,因此我有位置值
问题是如何更改嵌套数组的最后一个值
我可以这样做吗?(Python)
const query = {_id: 2, 'event_type.language.key': 0};
const updateQuery = {$set: {'event_type.language.$.cast.-1.name': "Some Name 4"}};
User.update(
query,
updateQuery,
(err) => {
if (err) {
res.status(404).end();
} else {
res.status(200).end();
}
}
);