我正在使用 Robo 3T 查看我的 MongoDB 文档,并且我想按名称对文档中的键进行排序。
我的文档可能看起来像
{"Y":3,"X":"示例","A":{"complex_obj":{}}
最后,我希望返回的文档看起来像我运行查找查询并对它应用排序时一样。 {"A":{"complex_obj":{},"X":"示例","Y":3}
有没有办法对文档返回的键/字段进行排序?我看到的所有示例都是根据字段的值而不是键的名称应用排序。
最佳答案
不确定为什么字段顺序在 JSON 文档中很重要,但您可以在下面尝试 aggregation查询:
db.collection.aggregate([
{
$project: { data: { $objectToArray: "$$ROOT" } }
},
{
$unwind: "$data"
},
{
$sort: { "data.k": 1 }
},
{
$group: { _id: "_id", data: { $push: "$$ROOT.data" } }
},
{
$replaceRoot: { newRoot: { $arrayToObject: "$data" } }
},
{
$project: { _id: 0 }
}
])
测试: mongoplayground
关于mongodb - 按字段/键名称对 MongoDB 文档进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61944681/