在Mongoose中更新子域数组而不获取父数组

Updating a subdoc array in Mongoose without getting the parent

本文关键字:数组 获取 Mongoose 更新      更新时间:2023-09-26

架构:

var viewSchema = new Schema({
    active: Boolean
    , path: String
})
var pageSchema = new Schema({
    name: String
    , desc: String
    , url: String
    , views: [viewSchema]
})

为了给现有页面添加新视图,我正在做:

Page
    .findOne({ id: pageId })
    .exec(function (err, page) {
        page.views.push({ path: path })
        page.save(function(err) {
           //saved
        })
    })

有没有一种方法可以在不实际获取页面的情况下进行同样的操作?

Page.update({ id: pageId }
          , { SOMETHING }
          , function(err){ 
             //updated 
          })

它有效。。

Page.update({ _id: page.id},{ $push: { "views": { path: "#page", active: true } } })

感谢@Alistair Nelson