sorting和Mongoose.js findOneAndRemove

根据Mongoose.js文档,应该可以将sort指令添加到直接传递到数据库的方法,如findOneAndUpdatefindOneAndRemove

我试图抓住一个匹配条件的文档,并将其从数据库中删除。 到目前为止,我已经尝试过:

 Model.findOneAndRemove({foo: 'bar'}) .sort({created_at: 'asc'}) .exec(callback); 

 Model.findOneAndRemove({foo: 'bar'}, {sort: {created_at: 'asc'}}).exec(callback); 

这两者似乎都忽略了sorting指令,只是简单地find并删除最近添加的匹配文档,而不是具有最早的created_atdate的文档。

发出查询作为findOne ,然后删除callback函数中的文档按预期工作,例如,

 Model.findOne({foo: 'bar'}).sort({created_at: 'asc'}) .exec(function (err, doc) { doc.remove(); }); 

返回并删除具有最早created_atdate的文档,所以我相信findOneAndRemove查询中的sorting(与常规查询不同,直接发送到MongoDB)必须使用不同的语法。

使用findOne而不是findOneAndRemove是一个可行的select,但我更希望操作是primefaces的,如果可能的话。

是否有可能像findOneAndUpdatefindOneAndRemove一样使用Mongoose.js查询的sorting指令,如果是,则使用什么语法?

也许这将有助于改变这种状况:

  {created_at: 1} 

'要么'

  {created_at: -1} 

(分别为上升或下降)。 我目前正在努力与findOneAndRemove包装以及。 它似乎没有完美的工作。

基于这里的API文档,这似乎是在mongoose.js的v3.8.18中修复的。

它很可能是早期修复的,但这是我使用的版本。