Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改MongoDB中嵌套数组的最后一个值_Mongodb_Pymongo - Fatal编程技术网

更改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();
      }
    }
  );