【发布时间】:2013-08-21 20:18:53
【问题描述】:
架构:
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这将允许你在一个操作中找到文档并更新其中的值。
-
有没有在 Mongoose 中使用
fireAndModify的例子来做类似的事情?谢谢 -
我会这样做的方法是在 mongo shell 中尝试该命令,一旦它在那里为您工作,您应该能够将它几乎与 mongoose 相同。
-
看看猫鼬documentation 你应该对你的提议没问题:
Page.update({ _id: id }, { $push: { "page.views": path }}, callback); -
不起作用:
Page.update({ _id: page.id},{ $push: { "page.views": { path: "#page", active: true } } })
标签: javascript mongoose