如何在 MongoDB 中获取已排序数据的不同值?
mongodbdatabasebig data analytics更新于 2026/1/16 17:22:17
以下是在 MongoDB 中获取已排序数据的不同值的查询
db.yourCollectionName.distinct("yourFieldName").sort();
首先创建一个包含文档的集合
>db.getDistinctWithSortedDataDemo.insertOne({"StudentId":10,"StudentName":"John","StudentAge":23});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9b1e3315e86fd1496b38c3")
}
>db.getDistinctWithSortedDataDemo.insertOne({"StudentId":20,"StudentName":"Carol","StudentAge":21});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9b1e3e15e86fd1496b38c4")
}
>db.getDistinctWithSortedDataDemo.insertOne({"StudentId":10,"StudentName":"John","StudentAge":23});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9b1e4415e86fd1496b38c5")
}
>db.getDistinctWithSortedDataDemo.insertOne({"StudentId":30,"StudentName":"Chris","StudentAge":22});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9b1e5115e86fd1496b38c6")
}
>db.getDistinctWithSortedDataDemo.insertOne({"StudentId":20,"StudentName":"Carol","StudentAge":21});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9b1e5715e86fd1496b38c7")
}
>db.getDistinctWithSortedDataDemo.insertOne({"StudentId":40,"StudentName":"Bob","StudentAge":20});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9b1e6515e86fd1496b38c8")
}
>db.getDistinctWithSortedDataDemo.insertOne({"StudentId":40,"StudentName":"Bob","Stude
ntAge":20});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9b1e6d15e86fd1496b38c9")
}
以下是借助 find() 方法显示集合中的所有文档的查询;
> db.getDistinctWithSortedDataDemo.find().pretty();
这将产生以下输出 −
{
"_id" : ObjectId("5c9b1e3315e86fd1496b38c3"),
"StudentId" : 10,
"StudentName" : "John",
"StudentAge" : 23
}
{
"_id" : ObjectId("5c9b1e3e15e86fd1496b38c4"),
"StudentId" : 20,
"StudentName" : "Carol",
"StudentAge" : 21
}
{
"_id" : ObjectId("5c9b1e4415e86fd1496b38c5"),
"StudentId" : 10,
"StudentName" : "John",
"StudentAge" : 23
}
{
"_id" : ObjectId("5c9b1e5115e86fd1496b38c6"),
"StudentId" : 30,
"StudentName" : "Chris",
"StudentAge" : 22
}
{
"_id" : ObjectId("5c9b1e5715e86fd1496b38c7"),
"StudentId" : 20,
"StudentName" : "Carol",
"StudentAge" : 21
}
{
"_id" : ObjectId("5c9b1e6515e86fd1496b38c8"),
"StudentId" : 40,
"StudentName" : "Bob",
"StudentAge" : 20
}
{
"_id" : ObjectId("5c9b1e6d15e86fd1496b38c9"),
"StudentId" : 40,
"StudentName" : "Bob",
"StudentAge" : 20
}
以下查询用于获取已排序的"StudentName"数据中的不同值
> db.getDistinctWithSortedDataDemo.distinct("StudentName").sort();
将产生以下输出 −
[ "Bob", "Carol", "Chris", "John" ]
以下查询用于获取已排序的"StudentAge"数据中的不同值
> db.getDistinctWithSortedDataDemo.distinct("StudentAge").sort();
这将产生以下输出 −
[ 20, 21, 22, 23 ]

