【问题标题】:Sorting multiple fields in Ascending and Descending order in mongodb with mongoose使用mongoose在mongodb中按升序和降序对多个字段进行排序
【发布时间】:2021-11-01 20:42:04
【问题描述】:

我有一些来自 mongodb 的字段,我试图按 asc 或 desc 顺序排序,但是在进行查询后得到的返回值相当不一致。我已经浏览了文档并尝试根据文档中的方式调整我的方法。

我试过了

  sort({"email": -1,
    "dob": -1,
    "website": -1,
    "lastName": -1,
    "firstName": -1,}) 

这个sort("-firstName, -lastName , -email , -dob , -website") 用于降序,但它只适用于一个字段。例如 lastName 并为其余部分返回不一致的数据。

这与尝试按升序排序时的行为完全相同。

我做错了什么?

【问题讨论】:

  • 你能提供一个例子和结果吗?
  • 我已经在帖子中做了。运行突出显示的排序查询仅对 1 个字段返回 true。只有 lastName 字段被正确排序

标签: mongodb sorting mongoose mongodb-query


【解决方案1】:

根据 mongo 官方文档,您需要在排序中添加一个包含唯一唯一值的字段。

https://docs.mongodb.com/manual/reference/operator/aggregation/sort/

不要忘记添加所需的索引以避免性能问题。

【讨论】:

  • 嗨。 sort({email: -1}) 是否算作一个字段。如果是的话,我已经这样做了。如果我添加多个字段,它只会解析第一个。
  • 在您的收藏中,邮件是否具有独特价值?你能分享一个你在你的数据库中拥有的文档的例子吗?
  • firstName: { type: String, required: [true, "请输入有效的名字。"], }, lastName: { type: String, required: [true, "请输入有效的last name."], }, email: { type: String, required: [true, "请提供有效的电子邮件地址。"], }, 这是我的架构的一部分
  • 我猜你用的是猫鼬?如果是这样,我看不到您为您的任何字段添加了独特的属性。我错过了什么吗?
  • 哦,我需要为每个字段添加唯一属性吗?让我马上试试
猜你喜欢
  • 2016-02-21
  • 2017-06-10
  • 2020-12-10
  • 2016-10-18
  • 1970-01-01
  • 2015-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多