1
схема:Обновление массива subdoc в Mongoose без получения родителя
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
})
Вы смотрели на [findAndModify] (http://docs.mongodb.org/manual/reference/command/ findAndModify /), это позволит вам найти документ и обновить значения в нем за одну операцию. –
есть пример 'fireAndModify', используемый в Mongoose, чтобы сделать что-то подобное? спасибо – fusio
То, как я это сделаю, это попробовать команду в оболочке монго, как только она работает для вас там, вы должны перенести ее почти одинаково в мангуст. –