当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Mongoose Query.prototype.updateOne()用法及代码示例


Mongoose API 的 Mongoose Query API.prototype.updateOne() 方法用于查询对象。它允许我们更新集合中的文档。 MongoDB 更新与过滤器匹配的第一个文档,无论 multi-option 值如何。让我们通过一个例子来理解updateOne()方法。

用法:

Model.updateOne( filter, update, options, callback );

Parameters: 该方法接受四个参数,如下所述:

  • filter: 它用于指定过滤条件。它以物体的形式存在。
  • update: 用于指定更新对象。
  • options: 它用于以对象的形式指定各种属性。
  • callback: 它用于指定回调函数。

返回值:此方法返回查询对象并使用最新值更新文档。

设置 Node.js Mongoose 模块:

步骤 1:使用以下命令创建 Node.js 应用程序:

npm init

步骤 2:创建 NodeJS 应用程序后,使用以下命令安装所需的模块:

npm install mongoose

项目结构: 项目结构将如下所示:

数据库结构:数据库结构如下所示,集合中存在以下文档。

示例 1:下面的示例说明了 Mongoose Query 的基本函数updateOne()方法,使用 then 和 catch 块。

Javascript


// 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); 
  
Student.updateOne( 
    { name: 'Student3' }, { age: 33 } 
).then(result => { 
    console.log(result); 
})

运行程序的步骤:要运行应用程序,请从项目的根目录执行以下命令:

node app.js

输出:

{
      acknowledged: true,
      modifiedCount: 1,  
      upsertedId: null,  
      upsertedCount: 0,  
      matchedCount: 1    
}

使用 Robo3T GUI 工具的数据库的 GUI 表示:

示例 2:下面的示例说明了 Mongoose Query 的基本函数updateOne()方法,使用异步函数和回调 Promise 处理函数。

Javascript


// 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 () => { 
    Student.updateOne( 
        { rollNumber: 176 }, { name: 'S2' },  
        (error, result) => { 
            if (error) { 
                console.log('Error', error); 
            } else { 
                console.log('Result', result); 
            } 
        }) 
})();

运行程序的步骤:要运行应用程序,请从项目的根目录执行以下命令:

node app.js

输出:

Result {
      acknowledged: true,
      modifiedCount: 1,  
      upsertedId: null,  
      upsertedCount: 0,  
      matchedCount: 1    
}

使用 Robo3T GUI 工具的数据库的 GUI 表示:

参考:https://mongoosejs.com/docs/api/query.html#query_Query-updateOne



相关用法


注:本文由纯净天空筛选整理自sakshio0hoj大神的英文原创作品 Mongoose Query.prototype.updateOne() API。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。