在MongoDB中更改嵌套数组的最后一个值

时间:2017-11-22 15:27:51

标签: mongodb pymongo

我有以下结构

{
    "_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();
      }
    }
  );

0 个答案:

没有答案