我在做什么:
Book.findOneAndUpdate(
{_id: id_from_api},
{$set: bookObj},
{upsert: true},
function (err, book) {
handleError(err);
console.log(book);
}
);
我希望本书可以作为书籍文档,但它只是一个文档存在,而不是因为upsert是真的而创建的。
我的问题是:我如何获得新创建的图书文件?
更新
只需明确将选项new
设置为true
Book.findOneAndUpdate(
{_id: id_from_api},
{$set: bookObj},
{upsert: true, new: true},
function (err, book) {
handleError(err);
console.log(book);
}
);
答案 0 :(得分:0)
您可以预先实例化图书对象,如下所示:
1.Begin(AsyncCallback callback, Object state, Int32 timeout) +130
System.Web.Mvc.Controller.BeginExecute(RequestContext requestContext, AsyncCallback callback, Object state) +317
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.BeginExecute(RequestContext requestContext, AsyncCallback callback, Object state) +15
System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__2(AsyncCallback asyncCallback, Object asyncState) +71
System.Web.Mvc.Async.WrappedAsyncResult
答案 1 :(得分:0)
在findOneAndUpdate的文档中,有一个名为new
的选项,以前默认为true
new: bool - if true, return the modified document rather than the original.
defaults to false (changed in 4.0)