【问题标题】:Add/Delete items into array of arrays via mongoose通过猫鼬将项目添加/删除到数组数组中
【发布时间】:2019-11-30 23:22:27
【问题描述】:

我想用相当复杂的方案更新文档。

我想用原子更新来做(不是在内存中修改它,然后调用 .save() )。

Push items into mongo array via mongoose - 实际上解释了如何将项目推入数组。但我的情况更复杂。

const eventSchema = new Schema( { 姓名: { 类型:'字符串' },

sessions: {
    type: [
        {
            id: {
                type: 'Number'
            },
            voters: {
                type: [
                    'String'
                ]
            }
        }
    ]
}

});

/////////////////////////////////////// ////////////

event
    |
    _id 
    |
    name
    |
    sessions[object, object ...]
             |
             id
             |
             voters[string, string ...]

我有事件 id (_id)、会话 (id) 并且需要在选民数组中添加/删除项目。

EventModel.update(
    { _id: event._id }, 
    { $push: { sessions[?? I have to find session by session.id ??]: "Jhon" } },
    done
);

【问题讨论】:

    标签: mongoose


    【解决方案1】:

    因此,您想在您的投票者数组中添加/删除项目,该数组位于您的会话数组中。您将对数组使用位置运算符 $ (https://docs.mongodb.com/manual/reference/operator/update/positional/)

    EventModel.update(
        {_id: event._id, "sessions.id": event.sessionId},
        {$push: {"sessions.$.voters": "newStringToAdd"}
    )
    

    【讨论】:

    • 谢谢你。这就是我需要的。
    猜你喜欢
    • 2017-12-21
    • 2021-01-28
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    相关资源
    最近更新 更多