首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mongoose错误不支持的投影选项:排序:{ createdAt:-1 }

Mongoose错误不支持的投影选项:排序:{ createdAt:-1 }
EN

Stack Overflow用户
提问于 2016-08-14 06:36:51
回答 4查看 8.8K关注 0票数 4

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

mongoose查询是:

代码语言:javascript
运行
复制
  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模型如下所示:

代码语言:javascript
运行
复制
const fecalSchema = new mongoose.Schema(
  {
    uid: String,
    email: String,
    status: {type: String, default: 'No Request' },
  },
  { timestamps: true });

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

EN

回答 4

Stack Overflow用户

发布于 2016-08-14 07:41:21

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

代码语言:javascript
运行
复制
FecalRequest.findOne({uid: req.user.id}, {}, {sort:{'createdAt':-1}}, (err, fecalkits) => {
  console.log(fecalkits);
  done(err, respiratorykits, fecalkits)
});

绝对是我在回答中使用“粪便”这个词最多的一次。

票数 19
EN

Stack Overflow用户

发布于 2016-08-14 06:56:06

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

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

票数 1
EN

Stack Overflow用户

发布于 2020-07-29 05:20:15

在Mongoose的最新版本中,您不能在findOne中使用sort。(请参阅query options doc。)

您的查询将变为:

代码语言:javascript
运行
复制
FecalRequest.find({uid: req.user.id}, {}, {sort: {'createdAt':-1}, limit: 1}, (err, fecalkits) => {
  console.log(fecalkits);
  done(err, respiratorykits, fecalkits);
});

请记住,这将返回一个列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38937566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档