【发布时间】:2015-08-03 21:55:29
【问题描述】:
这个基本的 Mongoose 模型代码在初始调用时返回空结果 (gameMgr),但在后续调用中有效。它不应该在初始 upsert 上返回一个填充的结果对象吗? mongo 记录存在,在相同的情况下再次运行代码,一切正常,因为没有插入。
如果预期结果对象为空,那么创建新对象的合适模式是什么? (或者我是否使用 另一个 db 调用重新加载并进一步陷入回调疯狂?)
GameManagerModel.findByIdAndUpdate(
game._id,
{$setOnInsert: {user_requests:[]}},
{upsert: true},
function(err, gameMgr) {
console.log( gameMgr ); // NULL on first pass, crashes node
gameMgr.addUserRequest( newRequest );
}
);
【问题讨论】: