Mongoose Aggregate.prototype.lookup()函数
Mongoose的Aggregate prototype.lookup() 方法是Mongoose API中用于执行聚合任务的方法。它允许我们在同一数据库的集合之间执行左连接操作,根据要求和条件筛选出文档。让我们通过一个示例来理解 lookup() 方法。
语法:
参数: 该方法接受一个参数,具体描述如下:
- object: 用于指定各种属性,如:from、localField、foreignField,用于方法执行。
返回值: 该方法以数组的形式返回聚合结果集。
设置Node.js的Mongoose模块:
步骤1: 使用以下命令创建一个Node.js应用程序:
步骤2: 创建NodeJS应用程序后,使用以下命令安装所需的模块:
项目结构: 项目的结构将如下所示:
数据库结构: 数据库结构将会是这样的,以下文档存在于集合中。
- 学生集合:
- 标志收藏:
示例1: 在这个示例中,我们使用mongoose建立了一个数据库连接,并在studentSchema和marksSchema上定义了模型。最后,我们通过以对象形式传递各种属性值来调用lookup()方法。我们得到了期望的结果,它是一个数组的形式。为了获得更好的理解,我们从结果数组中提取了第一个对象。
文件名:app.js
运行程序的步骤: 在项目的根目录下执行以下命令来运行应用程序:
输出:
示例2: 在这个示例中,我们使用mongoose建立了数据库连接,并在studentSchema和marksSchema上定义了模型。最后,我们使用聚合管道并配置$lookup对象。我们以数组形式得到了预期的结果。最后,我们使用forEach方法迭代数组,并显示学生的名字和成绩。
文件名:app.js
运行程序的步骤: 要运行应用程序,请从项目的根目录执行以下命令:
输出:
参考: https://mongoosejs.com/docs/api/aggregate.html#aggregate_Aggregate-lookup