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,就无法做到.

相关文章

MongoTemplate 是Spring Data MongoDB 中的一个核心类,为 S...
笔者今天要分享的是一个项目重构过程中如何将数据库选型由原...
mongodb/mongoTemplate.upsert批量插入更新数据的实现
进入官网下载官网安装点击next勾选同意,点击next点击custom...
头歌 MongoDB实验——数据库基本操作
期末考试复习总结