在 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
我试图使用 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
创建一个名为 - 然后,键位于名为
k
的字段中,因此您可以按该字段排序。 - 最后删除之前创建的辅助字段。
root
的字段
db.collection.aggregate([
{
"$set": {
"root": {
"$objectToArray": "$$ROOT"
}
}
},
{
"$sort": {
"root.k": 1
}
},
{
"$project": {
"root": 0
}
}
])
示例here