【问题标题】:mongoose.findOneAndUpdate returns null [duplicate]mongoose.findOneAndUpdate 返回 null [重复]
【发布时间】:2017-05-09 06:16:00
【问题描述】:

我正在使用 mongoose.findOneAndUpdate() 方法在集合中插入和更新文档。但是,如果表中没有要更新的内容并且创建了新文档,则 findOneAndUpdate() 回调将返回 null。

我怎么知道 findOneAndUpdate() 的插入部分是否成功?

TimeTable.getTimeTableModelObject().findOneAndUpdate({ageGroup:'2'}, timeTable, {upsert:true}, function(err, foundData){});

【问题讨论】:

    标签: javascript node.js mongodb mongoose mean-stack


    【解决方案1】:

    查看文档: http://mongoosejs.com/docs/api.html#query_Query-findOneAndUpdate

    可用选项

    new: bool - 如果为真,则返回修改后的文档而不是原始文档。默认为假

    [...]

    另外,您可以在回调函数中检查err

    【讨论】:

    • 如果我将new 设置为true,它会在第一次添加的文档的回调中返回NON NULL 值吗?可能存在猫鼬无法将文档插入集合中而不会导致错误的情况。在这种情况下,err 将不会被设置
    • 是的,当使用upsert:true 时,它会在插入后返回新文档。 “可能存在猫鼬无法在不导致错误的情况下将文档插入集合中的情况。”我不这么认为。那会是什么场景?
    • 插入后没有返回新文档。我已经在使用 upsert=true
    • @user2498079 你有想过这个吗?这显然不是链接问题的重复
    • @CQM 我同意你的看法,你可以在问题下方投票给Reopen ^^
    猜你喜欢
    • 2019-10-04
    • 2011-11-01
    • 2012-02-01
    • 2015-09-11
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多