mongodb 更新最后一个数组元素 [英] mongodb update the last array element

查看:78
本文介绍了mongodb 更新最后一个数组元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下文件:

{
    "_id": ObjectId("5d648b0d5aeada5177bb54e4"),
    "time": [{
            "start": "2019/8/25 9:59:30",
            "end": "2019/8/25 10:59:30"
        },
        {
            "start": "2019/8/26 9:59:30",
            "end": "2019/8/26 10:59:30"
        },
        {
            "start": "2019/8/27 9:59:30",
            "end": "2019/8/26 9:59:30"
        }
    ]
}

如何更新数组中的最后一个元素?

How to update the last element in array?

我已经试过了:

db.document.update(
  {
    "_id": ObjectId("5d648b0d5aeada5177bb54e4")
  }, 
  {
    $set: {
        "time.-1.end": "2019/8/26 10:59:30"
    }
  }
)

但它不起作用...

推荐答案

很简单.获取最后一个元素的索引/位置.

it is very simple. get the last element's index/position.

var data = {
"_id" : "5d648b0d5aeada5177bb54e4",
"time" : [ 
    {
        "start" : "2019/8/25 9:59:30",
        "end" : "2019/8/25 10:59:30"
    }, 
    {
        "start" : "2019/8/26 9:59:30",
        "end" : "2019/8/26 10:59:30"
    }, 
    {
        "start" : "2019/8/27 9:59:30",
        "end" : "2019/8/26 9:59:30"
    }
]
}

var len = data.time.length - 1;
var objUpdate = {};
var updateQuery = "time." + len + ".end";
objUpdate[updateQuery] = "2019/8/26 11:59:30";

db.getCollection('test').update({"_id" : ObjectId("5d648b0d5aeada5177bb54e4")}, {$set:objUpdate});

这篇关于mongodb 更新最后一个数组元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆