首页技术栈归档照片墙音乐日记随想收藏夹友链留言关于

使用JS操作MongoDB

写作时间:2026-07-08

使用JS操作MongoDB

使用mongoose连接MongoDB数据库

官网:https://mongoosejs.com/

下载mongoDB需要的依赖

npm i mongoose --save
/**
 * 1.下载
 * npm i mongoose --save
 * 2.在项目中引入mongoose
 *   var mongoose = require ( "mongoose") ;
 * 3.连接MongoDB数据库
 *   mongoose.connect ( 'mongodb://数据库的ip地址:端口号/数据库名',{ useMongoclient: true}
 *   -如果端口号是默认端口号(27017)则可以省略不写
 *
 *   -监听MongoDB数据库的连接状态
 *     -在mongoose对象中,有一个属性叫做connection,该对象表示的就是数据库连接
 *       通过监视该对象的状态,可以来监听数据库的连接与断开
 *
 *  4.断开数据库连接(一般不需要调用)
 *  mongoose.disconnect ()
 *  -监听MongoDB数据库的连接状态
 *  -在mongoose对象中,有一个属性叫做connection,该对象表示的就是数据库连接
 *  通过监视该对象的状态,可以来监听数据库的连接与断开
 *
 *  数据库连接成功的事件
 *  mongoose.connection.once ( "open" ,function () { } ) ;
 *
 *  数据库断开的事件
 *  mongoose.connection.once ( "close" ,function () { } );
 */

//引入mongoose
let  mongoose=require("mongoose");
//连接数据库
mongoose.connect("mongodb://127.0.0.1/student")

mongoose.connection.once("open",function () {
 console.log("数据库连接成功~~~~")
}) ;

mongoose.connection.once("close",function () {
    console.log("数据库以断开~~~~")
}) ;
//关闭数据库
mongoose.disconnect()

实现新增操作

//引入mongoose
let  mongoose=require("mongoose");
//连接数据库
mongoose.connect("mongodb://127.0.0.1/test")

mongoose.connection.once("open",function () {
    console.log("数据库连接成功~~~~")
}) ;

//将mongoose.schema赋值给一个变量
var Schema=mongoose.Schema;

//创建Schema(模式)对象
let stuSchema=new Schema({
    name:String,
    age:Number,
    gender:{
        type:String,
        default:"female"
    },
    address:String
})
//通过schema来创建Model
//Model代表的是数据库中的集合,通过Model才能对数据库进行操作
// mongoose.model (modelName, schema ) :
//modelName就是要映射的集合名 ,student默认会加上s
//let  StuModel=mongoose.model("student",stuSchema);
//向数据库中插入一个文档
StuModel.create({
    name:"张三",
    age:18,
    gender:"男",
    address:"上海"
},function (err) {
if (!err){
  console.log("插入成功")
 }
})

//插入多条
let  StuModel=mongoose.model("student",stuSchema);
StuModel.create([
    {
    name:"李四",
    age:18,
    gender:"男",
    address:"上海"
    },
    {
     name:"王五",
    age:18,
    gender:"男",
    address:"上海"
    }
],function (err) {
if (!err){
  console.log("插入成功")
 }
})

实现查询操作

//引入mongoose
let  mongoose=require("mongoose");
//连接数据库
mongoose.connect("mongodb://127.0.0.1/test")

mongoose.connection.once("open",function () {
    console.log("数据库连接成功~~~~")
}) ;

//将mongoose.schema赋值给一个变量
var Schema=mongoose.Schema;

//创建Schema(模式)对象
let stuSchema=new Schema({
    name:String,
    age:Number,
    gender:{
        type:String,
        default:"female"
    },
    address:String
})

/**
 * 查询操作
 */
let  StuModel=mongoose.model("student",stuSchema);
//查询操作 查询全部 StuModel.find({name:"张三"},function (err,docs) {  根据名称查询查询多条
StuModel.find({},function (err,docs) {
  if (!err){
      console.log(docs)
  }
})
//根据名称查询
StuModel.findOne({name:"张三"},function (err,docs) {
    if (!err){
        console.log(docs)
    }
})

//根据id查询
StuModel.findById("6245bea8c7ce1e8156787ce1",function (err,docs) {
    if (!err){
        console.log(docs)
        //判断Docs是StuModel的实例
        console.log(docs instanceof StuModel)
    }
})

实现修改操作

//引入mongoose
let  mongoose=require("mongoose");
//连接数据库
mongoose.connect("mongodb://127.0.0.1/test")

mongoose.connection.once("open",function () {
    console.log("数据库连接成功~~~~")
}) ;

//将mongoose.schema赋值给一个变量
var Schema=mongoose.Schema;

//创建Schema(模式)对象
let stuSchema=new Schema({
    name:String,
    age:Number,
    gender:{
        type:String,
        default:"female"
    },
    address:String
})

let  StuModel=mongoose.model("student",stuSchema);

/**
 *修改操作
 * Model.update (conditions, doc, [options] , [callback ])
 * Model.updateMany (conditions,doc,[options] , [callback ])odel.
 * updateOne (conditions, doc,[options] ,[callback ] )
 * -用来修改一个或多个文档
 * -参数:
 *   conditions查询条件
 *   doc 修改后的对象
 *   options配置参数
 *   callback回调函数
 */
//修改张三的年龄为100
StuModel.updateOne({name:"张三"},{$set:{age:100}},function (err) {
  if (!err){
    console.log("修改成功")
  }
})

实现删除操作

//引入mongoose
let  mongoose=require("mongoose");
//连接数据库
mongoose.connect("mongodb://127.0.0.1/test")

mongoose.connection.once("open",function () {
    console.log("数据库连接成功~~~~")
}) ;

//将mongoose.schema赋值给一个变量
var Schema=mongoose.Schema;

//创建Schema(模式)对象
let stuSchema=new Schema({
    name:String,
    age:Number,
    gender:{
        type:String,
        default:"female"
    },
    address:String
})

let  StuModel=mongoose.model("student",stuSchema);

/**
 * 删除操作
 * Model.remove (conditions, [callback ] )
 * Model.deleteone (conditions, [callback ] )
 * Model.deleteMany (conditions, [callback])
 */
StuModel.remove({name:"李四"},function (err) {
    if (!err){
        console.log("删除成功")
    }
})

Document操作MongoDB

//引入mongoose
let  mongoose=require("mongoose");
//连接数据库
mongoose.connect("mongodb://127.0.0.1/test")
mongoose.connection.once("open",function () {
    console.log("数据库连接成功~~~~")
}) ;
//将mongoose.schema赋值给一个变量
var Schema=mongoose.Schema;
//创建Schema(模式)对象
let stuSchema=new Schema({
    name:String,
    age:Number,
    gender:{
        type:String,
        default:"female"
    },
    address:String
})

let  StuModel=mongoose.model("student",stuSchema);
//创建以Document
let stu=new StuModel({
    name:"老八",
    age:18,
    gender:"男",
    address:"上海"
})

//保存方法
/**
stu.save(function (err) {
   if (!err){
     console.log("保存成功~~~~")
   }
})
 */

//查询一个对象第一个
StuModel.findOne({},function (err,doc) {
    if (!err){
        //console.log(doc)
        //修改
        // doc.update({$set:{age:30}},function (err) {
        //     if (!err){
        //         console.log("修改成功~~~~")
        //     }
        // })
        // //或者
        // doc.age=10;
        // doc.save();
        //
        // //删除操作
        // doc.remove(function (err) {
        //   if (!err){
        //       console.log("删除第一个")
        //   }
        // })
        //获取单个属性的id值
        // let id=doc.id
        // console.log(id)

        //转json
        //  doc=doc.toJSON();
        // console.log(doc)

        //装Object
        doc=doc.toObject();
        console.log(doc);

    }
})

mongoose模块化

在toos包下新建以文件夹新建一个conn_mongodb.js文件

/**
 * 定义 一个模块用于连接mongodb
 * @type {{readonly default: module:mongoose} | module:mongoose}
 */
let  mongoose=require("mongoose");
mongoose.connect("mongodb://127.0.0.1/test")
mongoose.connection.once("open",function () {
    console.log("数据库连接成功~~~~")
}) ;

新建models包下新建以student.js的模型类

/**
 *定义一个Student的模型
 */
let mongoose=require("mongoose")

var Schema=mongoose.Schema;

//创建Schema(模式)对象
let stuSchema=new Schema({
    name:String,
    age:Number,
    gender:{
        type:String,
        default:"female"
    },
    address:String
})

//定义模型
let  StuModel=mongoose.model("student",stuSchema);

module.exports=StuModel;

新建一个index.js的类

//引入mongodb
require("./toos/conn_mongodb")
//引入模型
let Studnet=require("./models/Student");

Studnet.find({},function (err,docs) {
    if (!err){
        console.log(docs)
    }

})
avatar

yuanyourdomain

写代码,做研究,记录生活。

RECOMMENDED

MyBatis 动态 SQL

2026-07-08

Nginx 基础入门

2026-07-08

Maven 多模块与私服

2026-07-08