mongoDB数据库之使用第三方包mongoose来操作mongoDB数据库

mongoDB数据库之使用第三方包mongoose来操作mongoDB数据库

1.先下载mongoose第三方包

npm install --save mongoose

2.新建一个mongoose.js测试一下

//1.引包
var mongoose = require('mongoose');

//连接 mongoDB数据库
mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true});

//mongoDB是动态的,非常灵活,只需要在代码中设计数据库就可以了
//设计数据库
//表名cats,表中存储name数据,类型为iestring
var Cat = mongoose.model('Cat', { name: String });

//实例化一个Cat
var kitty = new Cat({ name: 'Zildjian' });

//持久化保存kitty实例
kitty.save(function(err){
	if(err){
		console.log(err)
	}else{
		console.log('meow')
	}
})

3.开启mongodb服务,在开启前要在所处盘符根目录下新建data/db文件夹

[外链图片转存失败(img-akLZRuNl-1564741661345)(C:\Users\14331\AppData\Roaming\Typora\typora-user-images\1564296040176.png)]

[外链图片转存失败(img-bBz6AwIL-1564741661348)(C:\Users\14331\AppData\Roaming\Typora\typora-user-images\1564296126974.png)]

mongod  //开启服务

4.新开一个cmd终端,使用mongo连接数据库

[外链图片转存失败(img-Lw9hnK1t-1564741661350)(C:\Users\14331\AppData\Roaming\Typora\typora-user-images\1564296013518.png)]

mongo //连接数据库
show dbs//查看所有数据库
db //查看当前操作数据库
show collections //查看数据表集合
db.cats.find()  //查看数据

[外链图片转存失败(img-azlLVre5-1564741661351)(C:\Users\14331\AppData\Roaming\Typora\typora-user-images\1564296333447.png)]

2.mongoDB数据库的基本概念

  • 数据库(可以有多个数据库)
  • 集合(表,一个数据库中可以有多个表)
  • 文档 (记录,必须是对象类型的,一个集合中可以有多个文档)
{
    qq:{
        users:[
          {name : '李四',age: 15},
          {name : '李四',age: 15},
          {name : '李四',age: 15},
          {name : '李四',age: 15},
          {name : '李四',age: 15},
          {name : '李四',age: 15}, 
            ···
     ],
     products:[
     
     ],
  	···
    },
    taobao:{
        
    },
    baidu{
        
    }
}

3.官方指南

3.1设计Schema发布model
var mongoose = require('mongoose')

var Schema = mongoose.Schema
//1.连接数据库,指定的数据库若不存在,则mongoDB会自动创建
mongoose.connect('mongodb://localhost/itcast')


//2.设计表结构
//字段名称就是表结构中的属性名称
//约束的目的是为了数据的完整性,不要有脏数据
var userSchema = new Schema({
	username: {
		type: String,
		required: true //必须有
	},
	password:{
		type: String,
		required: true
	},
	emaill: {
		type: String
	}
})


//3.将表结构发布为模型
//mongoose.model方法用于一个model
//第一个参数:传入一个大写字母单数名词字符串用于表示
//返回值:模型构造函数
var User = mongoose.model('User',userSchema)

//4.当我们有了模型构造函数之后,就可以使用这个构造函数对users集合中的数据为所欲为了


3.2增加数据
var admin = new User({
	"username":"李顺",
	"password":"123",
	"emaill":"admin@qq.com"
})

admin.save(function(err,ret){
	if(err){
		console.log('保存失败');
	}else{
		console.log('保存成功');
		console.log(ret);
	}
})
3.3查询数据
//查询所有数据,返回数组
User.find(function(err,ret){
	if(err){
	console.log('查询失败');
	}else{
		console.log('查询成功');
		console.log(ret);
	}
})
//按条件查询,返回数组
User.find({
    username : '李顺'
	},
    function(err,ret){
	if(err){
	console.log('查询失败');
	}else{
		console.log('查询成功');
		console.log(ret);
	}
})
//按条件查询单个,返回单个对象
User.findOne({
    username : '李顺'
	},
    function(err,ret){
	if(err){
	console.log('查询失败');
	}else{
		console.log('查询成功');
		console.log(ret);
	}
})
3.4删除数据
User.remove({username : '郑孟浩'},
	function(err,ret){
	if(err){
		console.log('删除失败')
	}else{
		console.log('删除成功')
	}	
})

3.5更新数据
User.findByIdAndUpdate('5d3d94bbfb8bdd286848ee18',{//第一个参数是id
	password:'778899'
},function(err,ret){
	if(err){
		console.log('更新失败')
	}else{
		console.log('更新成功')
	}
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值