在 MongoDB 中寻找按键排序数据的方法

Looking for a way to sort data by key in MongoDB

我试图使用 GET 请求从 MongoDB 获取数据,但每次刷新 URL 时数据的顺序都会改变。我在MongoDB中使用了$sort方法,但是顺序还是变了

let apiURL_1 = await axios.get('http://localhost:3000/Mydata');

我的数据:

[{"Bread":6},{"Fruit":6},{"Cholate":4}]

预期输出(字母顺序)使用 $sort来自 MongoDB 的聚合或做一些 javascript 对数据进行排序。

[{"Bread":6}, {"Cholate":4}, {"Fruit":6}]

您可以使用此聚合查询:

  • 首先使用 $objectToArray
  • 创建一个名为 root 的字段
  • 然后,键位于名为 k 的字段中,因此您可以按该字段排序。
  • 最后删除之前创建的辅助字段。
db.collection.aggregate([
  {
    "$set": {
      "root": {
        "$objectToArray": "$$ROOT"
      }
    }
  },
  {
    "$sort": {
      "root.k": 1
    }
  },
  {
    "$project": {
      "root": 0
    }
  }
])

示例here