微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 是否可以在MongoDB文档的数组中间插入一个元素?

假设我在mongo DB中有一个文档,如下所示:

{
    pages: [
        {
            elements: [
                {id:1},
                {id:2},
                {id:3}
            ]
        },
        {
            elements: [
                ...
            ]
        }
    ]
}

并且页面内元素的顺序具有语义含义(例如,堆叠).现在说我想在第一页的第二个元素之前添加一个新元素.生成的文档的所需状态是这样的:

{
    pages: [
        {
            elements: [
                {id:1},
                {id:4}, // <------ element inserted here
                {id:2},
                {id:3}
            ]
        },
        {
            elements: [
                ...
            ]
        }
    ]
}

Mongo docs中,我看到如何将元素添加到数组的末尾以及如何更新现有元素的值,而不是如何插入到数组的中间(例如PHParray_splice).这只能通过将整个数组重新分配到一个新数组并将所需元素插入中间来实现吗?

解决方法:

基本上,如果您使用update,则无法保证订单.要添加到尝试建议的问题,虽然可以在specific position更新元素,但不能使用类似的规范调用$addToSet$push.

您想要的相关功能请求在这里

https://jira.mongodb.org/browse/SERVER-2363

但就目前而言,正如您所怀疑的那样,如果不拔出阵列,按照您的意愿操纵它并使用$set,就无法做到.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐