如何在 MongoDB 中对列表进行排序并为其项目添加位置?
mongodbdatabasebig data analytics更新于 2026/2/11 5:37:17
要对列表进行排序,请使用 sort()。让我们创建一个包含文档的集合。 −
> db.demo581.insertOne({"Name":"Chris","Score":56});{
"acknowledged" : true, "insertedId" : ObjectId("5e91cbbbfd2d90c177b5bcb6")
}
> db.demo581.insertOne({"Name":"Bob","Score":240});{
"acknowledged" : true, "insertedId" : ObjectId("5e91cbbbfd2d90c177b5bcb7")
}
> db.demo581.insertOne({"Name":"David","Score":150});{
"acknowledged" : true, "insertedId" : ObjectId("5e91cbbcfd2d90c177b5bcb8")
}
借助 find() 方法显示集合中的所有文档 −
> db.demo581.find();
这将产生以下输出 −
{ "_id" : ObjectId("5e91cbbbfd2d90c177b5bcb6"), "Name" : "Chris", "Score" : 56 }
{ "_id" : ObjectId("5e91cbbbfd2d90c177b5bcb7"), "Name" : "Bob", "Score" : 240 }
{ "_id" : ObjectId("5e91cbbcfd2d90c177b5bcb8"), "Name" : "David", "Score" : 150 }
以下是在 MongoDB 中对列表进行排序并向其项目添加位置的查询 −
> db.demo581.createIndex({Score:1})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
}
> var i = 1;
> db.demo581.find().sort({"Score": 1}).forEach(function (d){
... d.Position = i;
... i++;
... db.demo581.save(d);
... })
借助 find() 方法显示集合中的所有文档 −
> db.demo581.find();
这将产生以下输出 −
{ "_id" : ObjectId("5e91cbbbfd2d90c177b5bcb6"), "Name" : "Chris", "Score" : 56, "Position" : 1 }
{ "_id" : ObjectId("5e91cbbbfd2d90c177b5bcb7"), "Name" : "Bob", "Score" : 240, "Position" : 3 }
{ "_id" : ObjectId("5e91cbbcfd2d90c177b5bcb8"), "Name" : "David", "Score" : 150, "Position" : 2 }

