findOneAndUpdate有排序和限制

Jon*_*han 6 mongoose node.js

var query = Session
   .find({ player: player, logout: null })
   .sort({ 'login.date': -1 })
   .limit(1);

query.exec(function(err, data) {
  var session = new Session(data);
  session.logout = logoutEvent;
  session.save();
});
Run Code Online (Sandbox Code Playgroud)

如何将其转换为findOneAndUpdate

以下是使用findOneAndUpdate的示例,但我不确定如何添加sortlimit:

var query = {'username':req.user.username};
req.newData.username = req.user.username;
MyModel.findOneAndUpdate(query, req.newData, {upsert:true}, function(err, doc){
    if (err) return res.send(500, { error: err });
    return res.send("succesfully saved");
});
Run Code Online (Sandbox Code Playgroud)

Mat*_*yhr 8

您可以为选项dict添加排序:

{ upsert: true, sort: { 'login.date': -1 } }
Run Code Online (Sandbox Code Playgroud)

  • 啊。找到`One`AndUpdate。所以限制是隐含的 (2认同)
  • @ZachSmith 哈哈,我们都有过这样一个脑死亡的时刻:P (2认同)