Mongoose Query.prototype.projection()方法
Mongoose的 Query API.prototype.projection() 方法用于查询对象。它允许我们设置和配置查询对象的投影。使用这个方法我们可以获取现有的投影详细信息,也可以删除现有的投影。让我们通过一个示例来了解 projection() 方法。
语法:
query.projection( arg );
参数: 此方法接受一个参数,如下所述:
- arg: 它用于设置和移除查询对象的投影。可以指定为对象或null。
返回值: 此方法返回带有当前投影的结果集。
设置Node.js Mongoose模块:
步骤1: 使用以下命令创建一个Node.js应用程序:
npm init
步骤2: 创建NodeJS应用程序之后,使用以下命令安装所需的模块:
npm install mongoose
项目结构: 项目结构将如下所示:
数据库结构:
数据库的结构将会像这样,下面是MongoDB中存在的数据库。
示例1: 下面的示例演示了Mongoose连接projection()方法的基本功能。在这个示例中,我们选择了name字段作为当前projection,并使用projection方法以对象形式获取现有projection的详情。
文件名:app.js
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
const URI = "mongodb://localhost:27017/geeksforgeeks"
const connectionObject = mongoose.createConnection(URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const studentSchema = new mongoose.Schema({
name: { type: String },
age: { type: Number },
rollNumber: { type: Number },
});
const Student = connectionObject.model('Student', studentSchema);
(async () => {
const result = await Student
.find({ rollNumber: 9 })
.select('name')
.projection();
console.log(result)
})();
运行程序的步骤: 从项目的根目录执行以下命令来运行应用程序:
node app.js
输出:
{ name: 1 }
示例2: 下面的示例演示了Mongoose Connection projection()方法的基本功能。在这个示例中,我们选择了age字段作为当前投影,并使用projection方法将当前投影配置设置为null。
文件名:app.js
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
const URI = "mongodb://localhost:27017/geeksforgeeks"
const connectionObject = mongoose.createConnection(URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const studentSchema = new mongoose.Schema({
name: { type: String },
age: { type: Number },
rollNumber: { type: Number },
});
const Student = connectionObject.model('Student', studentSchema);
(async () => {
const query = Student
.find({ rollNumber: 178 })
.select('age');
query.projection(null);
console.log(query.projection());
})();
运行程序的步骤: 要运行应用程序,请从项目的根目录执行以下命令:
node app.js
输出:
{}
参考: https://mongoosejs.com/docs/api/query.html#query_Query-projection