- Node.js教程
- Node.js - 教程
- Node.js - 简介
- Node.js - 环境设置
- Node.js - 首次申请
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调概念
- Node.js - 上传文件
- Node.js - 发送电子邮件
- Node.js - 活动
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 流程
- Node.js - 扩展应用程序
- Node.js - 包装
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 缓冲器
- Node.js - Streams
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 快速入门
- Node.js - MySQL创建数据库
- Node.js - MySQL创建表
- Node.js - MySQL Insert Into
- Node.js - MySQL Select From
- Node.js - MySQL Where 子句
- Node.js - MySQL Order By
- Node.js - MySQL Delete
- Node.js - MySQL Update
- Node.js - MySQL Join
- Node.js MongoDB
- Node.js - MongoDB 快速入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB Insert
- Node.js - MongoDB Find
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB Delete
- Node.js - MongoDB Update
- Node.js - MongoDB Limit
- Node.js - MongoDB Join
- Node.js模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - utility 模块
- Node.js - Web 模块
Node.js - MongoDB 排序
对 MongoDB 数据库中的集合进行 find() 查询的结果可以按文档中某个字段的升序或降序排列。用于 Node.js 的 mongodb 驱动程序在 Collection 对象中定义了 sort() 方法。
要在 Node.js 中对 MongoDB 查询的结果进行排序,您可以使用 sort() 方法。此方法允许您按一个或多个字段的值在特定方向上对返回的文档进行排序。要按字段升序(最低排序)对返回的文档进行排序,请使用值 1。要改为按降序(最大次前)顺序排序,请使用 -1。
升序的语法如下 -
result = col.find(query).sort(field:1);
降序排序的语法如下 -
result = col.find(query).sort(field:-1);
升序排序
以下示例按价格升序显示产品集合中的文档。
例
const {MongoClient} = require('mongodb');
async function main(){
const uri = "mongodb://localhost:27017/";
const client = new MongoClient(uri);
try {
await client.connect();
await sortdocs(client, "mydb", "products");
} finally {
await client.close();
}
}
main().catch(console.error);
async function sortdocs(client, dbname, colname){
var mysort = { price: 1 };
const result = await client.db(dbname).collection(colname).find({}).sort(mysort).toArray();
result.forEach(element => {
console.log(element);
});
}
输出
{
_id: new ObjectId('6580964f20f979d2e9a72ae9'),
ProductID: 3,
Name: 'Router',
price: 2000
}
{
_id: new ObjectId('6580964f20f979d2e9a72aea'),
ProductID: 4,
Name: 'Scanner',
price: 5000
}
{
_id: new ObjectId('6580964f20f979d2e9a72aeb'),
ProductID: 5,
Name: 'Printer',
price: 9000
}
{
_id: new ObjectId('65809214693bd4622484dce3'),
ProductID: 1,
Name: 'Laptop',
Price: 25000
}
{
_id: new ObjectId('6580964f20f979d2e9a72ae8'),
ProductID: 2,
Name: 'TV',
price: 40000
}
_id: new ObjectId('6580964f20f979d2e9a72ae9'),
ProductID: 3,
Name: 'Router',
price: 2000
}
{
_id: new ObjectId('6580964f20f979d2e9a72aea'),
ProductID: 4,
Name: 'Scanner',
price: 5000
}
{
_id: new ObjectId('6580964f20f979d2e9a72aeb'),
ProductID: 5,
Name: 'Printer',
price: 9000
}
{
_id: new ObjectId('65809214693bd4622484dce3'),
ProductID: 1,
Name: 'Laptop',
Price: 25000
}
{
_id: new ObjectId('6580964f20f979d2e9a72ae8'),
ProductID: 2,
Name: 'TV',
price: 40000
}
降序排序
要按名称字段的降序生成产品集合中的文档列表,请将 sortdocs() 函数更改为以下内容 -
例
async function sortdocs(client, dbname, colname){
var mysort = { Name: -1 };
const result = await client.db(dbname).collection(colname).find({}).sort(mysort).toArray();
result.forEach(element => {
console.log(element);
});
});
输出
{
_id: new ObjectId('6580964f20f979d2e9a72ae8'),
ProductID: 2,
Name: 'TV',
price: 40000
}
{
_id: new ObjectId('6580964f20f979d2e9a72aea'),
ProductID: 4,
Name: 'Scanner',
price: 5000
}
{
_id: new ObjectId('6580964f20f979d2e9a72ae9'),
ProductID: 3,
Name: 'Router',
price: 2000
}
{
_id: new ObjectId('6580964f20f979d2e9a72aeb'),
ProductID: 5,
Name: 'Printer',
price: 9000
}
{
_id: new ObjectId('65809214693bd4622484dce3'),
ProductID: 1,
Name: 'Laptop',
Price: 25000
}
_id: new ObjectId('6580964f20f979d2e9a72ae8'),
ProductID: 2,
Name: 'TV',
price: 40000
}
{
_id: new ObjectId('6580964f20f979d2e9a72aea'),
ProductID: 4,
Name: 'Scanner',
price: 5000
}
{
_id: new ObjectId('6580964f20f979d2e9a72ae9'),
ProductID: 3,
Name: 'Router',
price: 2000
}
{
_id: new ObjectId('6580964f20f979d2e9a72aeb'),
ProductID: 5,
Name: 'Printer',
price: 9000
}
{
_id: new ObjectId('65809214693bd4622484dce3'),
ProductID: 1,
Name: 'Laptop',
Price: 25000
}