Mongoose Document Model.exists()函数
Mongoose API的 Model.exists() 方法用于在数据库中查找文档。如果数据库中存在至少一个与给定的过滤条件匹配的文档,此方法将返回一个带有“_id”的文档。
语法:
Model.exists()
参数: Model.exists()方法接受四个参数:
- filter: 它是一个对象,用于指定从集合中选择文档的条件。
- options: 它是一个具有各种属性的对象。
- callback: 这是一个回调函数,一旦执行完成,就会运行。
返回值: Model.exists()函数返回一个promise。结果包含一个与过滤条件匹配的文档的“_id”对象。如果没有匹配,它将返回null。
设置Node.js应用程序:
步骤1: 使用以下命令创建一个Node.js应用程序:
npm init
步骤2: 创建NodeJS应用之后,使用以下命令安装所需模块:
npm install mongoose
项目结构: 项目的结构将如下所示:
数据库结构: 数据库结构将如下所示,以下文档已存在于集合中。
示例1: 在这个示例中,我们使用mongoose建立了一个数据库连接,并在userSchema上定义了一个模型,拥有两个列或字段“name”和“age”。最后,我们在User模型上使用exists()方法来获取“age”字段值为“20”的文档的“_id”。
- app.js: 将以下代码写入app.js文件中:
// Require mongoose module
const mongoose = require('mongoose');
// Set Up the Database connection
mongoose.connect(
'mongodb://localhost:27017/geeksforgeeks', {
useNewUrlParser: true,
useUnifiedTopology: true
})
const userSchema = new mongoose.Schema(
{ name: String, age: Number}
)
// Defining userSchema model
const User = mongoose.model('User', userSchema);
User.exists({age: 20}).then(result => {
console.log(result)
})
运行程序的步骤: 从项目的根目录执行以下命令来运行应用程序:
node app.js
输出:
{ _id: new ObjectId("6316eef52d1b8030ebe17040") }
示例2: 在这个示例中,我们为“年龄”字段提供的值在数据库中不存在对应的文档。因此,在输出中,我们将得到一个“null”值。
- app.js: 将下面的代码写入app.js文件中:
// Require mongoose module
const mongoose = require('mongoose');
// Set Up the Database connection
mongoose.connect(
'mongodb://localhost:27017/geeksforgeeks', {
useNewUrlParser: true,
useUnifiedTopology: true
})
const userSchema = new mongoose.Schema(
{ name: String, age: Number}
)
// Defining userSchema model
const User = mongoose.model('User', userSchema);
User.exists({age: 50}).then(result => {
console.log(result)
})
运行程序的步骤: 要运行此应用程序,请在项目的根目录下执行以下命令:
node app.js
输出:
null
参考资料: https://mongoosejs.com/docs/api/model.html#model_Model-exists