mongoose插件入门

这篇博客介绍了MongoDB数据库的基本操作,包括在C盘创建/data/db目录启动服务,以及连接、断开数据库。接着讲解了MongoDB的常用命令,如查看数据库、插入数据、显示数据等。在Node.js环境中,重点讲述了使用mongoose库进行CRUD操作,包括增加数据、按条件查询、删除和更新数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongodb 在C盘下创建/data/db 目录之后打开命令行工具 输入 mongod 启动数据库服务
然后另外再打开一个命令行工具输入 mongo 连接数据库 输入exit 表示断开数据库
基本命令
show dbs 显示已有数据库
db 查看当前操作的数据库
use itcast数据库名称 切换到指定的数据(如果没有会新建)
插入数据
db.students.insertOne({“name”:”Jack”}) //在数据库中写入一个数据
{
“acknowledged” : true,
“insertedId” : ObjectId(“5c2dcf57064d9d048d67fd25”)
}

则显说明成功
展示数据
进入到要查看的目录 show collections 显示当前数据库中的集合
db.stduents.find() { “_id” : ObjectId(“5c2dcf57064d9d048d67fd25”), “name” : “Jack” } 默认自带id
在Node中如何操作mongodb
使用官方的api文档

mongoose 的初步感知 增加数据

//npm 中安装成功之后就导入mongoose包
var mongoose=require('mongoose')


//获取数据库中的架构
var Schema=mongoose.Schema

//1.连接数据库
//指定连接的数据不存在,当你插入第一条数据成功之后会自动创建出这个数据库
mongoose.connect('mongodb://localhost/itcast')

//2.设计集合 文档结构(表结构)
//字段名称就是表结构中的属性名称
//约束的目的是为了保证数据的完整性

var userSchema=new Schema({
	username:{
		type:String,
		required:true  //必须有 
	},
	password:{
		type:String,
		required:true //必须有
	},
	email:{
		type:String   //可有可无 可以为空
	}
})
//3.将文档架构发布为模型
var User=mongoose.model('User',userSchema)
// mongoose.model() 方法就是用来将一个架构发布为model
//第一个参数:传入一个大写名词单数字符串用来表示你的数据库名称
// mongoose 会自动将大写名词的字符串生成小写复数的集合名称
//例如这里的User最终会变成 user 集合名称
//第二个参数: 架构Schema
//返回值:模型构造函数

//4.当我们有了模型构造函数之后,就可以使用这个构造函数对user集合中的数据进行增删改查操作了

var admin=new User({
	username:'admin',
	password:'123465',
	email:'admin@qq.com'
})

admin.save(function(err,ret){
	if(err){
		console.log('保存失败')
	}
	else{
		console.log('保存成功')
		console.log(ret)
	}
})

查询数据

//查询所有
User.find(function(err,ret){ //使用find()方法 
	if(err){
		console.log('查询失败')
	}else{
		console.log('查询成功')
		console.log(ret)
	}
})

按条件查询

User.find({
	username:'zs'  //输入查询的条件
},function(err,ret){
	if(err){
		console.log('查询失败')
	}else{
		console.log('查询成功')
		console.log(ret)
	}
})

查询结果

[ { _id: 5c2eff160aee562740330ea9,
    username: 'zs',
    password: '123465',
    email: 'admin@qq.com',
    __v: 0 } ]	
//是一个数组

查询单个结果

User.findOne({   //findOne方法
	username:'zs'   
},function(err,ret){
	if(err){
		console.log('查询失败')
	}else{
		console.log('查询成功')
		console.log(ret)
	}
})

查询结果

{ _id: 5c2eff160aee562740330ea9,
  username: 'zs',
  password: '123465',
  email: 'admin@qq.com',
  __v: 0 }
//是个对象 不是数组

删除数据

User.remove({
	username:'zs' //删除条件  会删除数据中含有 username:'zs' 的所有数据
},function(err){
	if(err){
		console.log('删除失败')
	}else{
		console.log('删除成功')
	}
})

删除结果

(node:8092) DeprecationWarning: collection.remove is deprecated. 
Use deleteOne, deleteMany, or bulkWrite instead.
//删除成功

更新数据

User.findByIdAndUpdate('5c2ef4dd42db282be4bb5eb8',{
	password:'123'  //修改密码为 123
},function(err,ret){
	if(err){
		console.log('更新失败')
	}else{
		console.log('更新成功')
		console.log(ret)
	}
	
})
//使用 findByIdAndUpdate(id,{修改键值对},callback) 进行修改

完成了使用mongoose 的基本的CRUD操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值