mongodb展开并排序嵌套在文档数组中的数组

标签 mongodb sorting mongodb-query aggregation-framework

如果区分大小写,如何使排序功能良好。我们怎样才能使它正确

请建议最好的修复方法

db.products.aggregate([
  {
    "$unwind": "$receipe"
  },
  {
    "$unwind": "$receipe.burger"
  },
  {
    "$sort": {
      "receipe.burger.name": 1
    }
  }
])

https://mongoplayground.net/p/2pnUABI_-Mr

在我的示例中,familyburger 应该首先显示,而不是 Paneer Burger。

最佳答案

演示 - https://mongoplayground.net/p/Vt3GQx0tdXC

  • 使用 $toLower 添加一个小写的新字段
  • 取小写值

   db.products.aggregate([
      { "$unwind": "$receipe" },
      { "$unwind": "$receipe.burger" },
      { $addFields: { "insensitiveName": { $toLower: "$receipe.burger.name" } } },
      { $sort: { "insensitiveName": 1 } }
    ])

关于mongodb展开并排序嵌套在文档数组中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68224497/

相关文章:

node.js - 在对象数组上使用 Mongoose/MongoDB $addToSet 功能

ios - 按字母数字属性对自定义对象的 NSArray 进行排序的最佳方法

c# - 如何在两个数组中找到共同的最小数字

java - 在Android游戏中按分数对玩家姓名进行排序

mongodb - 带过滤器的 Mongo 日期范围索引

java - 如何对mongodb中FIND命令获取的文档进行排序?

Node.js - 如何计算 mongodb 中子文档的聚合(总和)?

mongodb - 如何在 MongoDB 上模拟 'error' 事件

node.js - MongoDB 请求 : Filter only specific field from embedded documents in embedded array

javascript - 填充中的 Mongoose 排序不起作用