Node.js Mongoose错误不支持投影选项:排序:{createdAt:-1}

Node.js Mongoose错误不支持投影选项:排序:{createdAt:-1},node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我正在尝试按日期对我的mongoose条目进行排序,最近一次是使用mongoose的node.js express中的第一个条目。 mongoose查询是: FecalRequest.findOne({uid: req.user.id}, {sort:{'createdAt':-1}}, (err, fecalkits) => { console.log(fecalkits); done(err, respiratorykits, fecalkits) }); 我

我正在尝试按日期对我的mongoose条目进行排序,最近一次是使用mongoose的node.js express中的第一个条目。

mongoose查询是:

  FecalRequest.findOne({uid: req.user.id}, {sort:{'createdAt':-1}}, (err, fecalkits) => {
    console.log(fecalkits);
    done(err, respiratorykits, fecalkits)
  });
我试过created_at和createdAt。错误是 eMongoError:不支持的投影选项:排序:{createdAt:-1}

作为参考,FecalRequest模型如下所示:

const fecalSchema = new mongoose.Schema(
  {
    uid: String,
    email: String,
    status: {type: String, default: 'No Request' },
  },
  { timestamps: true });

我只想返回某个特定用户最近创建的条目

您不会为此使用findOne。将find()与sort()和limit()一起使用


findOne将返回找到的第一个符合搜索条件的文档

包括一个空对象作为第二个(投影)参数,以便将第三个参数正确解释为查询选项:

FecalRequest.findOne({uid: req.user.id}, {}, {sort:{'createdAt':-1}}, (err, fecalkits) => {
  console.log(fecalkits);
  done(err, respiratorykits, fecalkits)
});

肯定是我在回答中使用“粪便”一词最多的一次。

如果你只找到一份文件,我认为不可能排序


我相信“查找”是您应该使用的功能

在Mongoose的最新版本中,您不能将
sort
findOne
一起使用。(见附件。)

您的查询将变成:

FecalRequest.find({uid:req.user.id},{},{sort:{'createdAt':-1},limit:1},(err,fecalkits)=>{
console.log(fecalkits);
完成(错误、呼吸困难、失语);
});