如何添加到mongoose嵌套文档,而不是覆盖它?

时间:2017-10-02 09:54:02

标签: node.js mongoose

这是我的猫鼬模型:

...
images: new Schema({
 poster: new Schema({
   small: String,
   medium: String,
   big: String
 }, { _id: false }),
 backdrop: new Schema({
   small: String,
   medium: String,
   big: String
 }, { _id: false })
}, { _id: false }),
...

这就是我正在做的事情:
我正在收到海报,并像这样更新images

Movie.findOneAndUpdate({
id: {
    imdb: movie.id.imdb
}
}, {
    images: {
        backdrop: {
            small: backdrops.small,
            medium: backdrops.medium,
            big: backdrops.big
        }
    }
}

工作正常。然后我得到背景幕,我更新images就像这样:

Movie.findOneAndUpdate({
    id: {
        imdb: movie.id.imdb
    }
}, {
    images: {
        backdrop: {
            small: backdrops.small,
            medium: backdrops.medium,
            big: backdrops.big
        }
    }
}

问题
它会覆盖整个images文档,而不会在backdrops上添加poster。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

我明白了
而是这个:

images: {
    backdrop: {
        small: backdrops.small,
        medium: backdrops.medium,
        big: backdrops.big
    }
}

我应该使用

'images.backdrop': {
    small: backdrops.small,
    medium: backdrops.medium,
    big: backdrops.big
}