基础config.js配置
//1.导入安装包
const mongoose = require('mongoose')
//2.链接数据库-库名------------默认返回promise
mongoose.connect('mongodb://localhost/abcd').then(() => {
console.log('数据库连接成功');
}).catch(err => {
console.log('数据库连接成功'+err);
})
/*
*格式规范
*/
//1.数据模式,规范————————Schema
var kittySchema = mongoose.Schema({
name:String
})
//2.根据模式创建一个模板-----实例化一个对象
let maomi = mongoose.model('xiaomiaomiao',kittySchema)
//3.根据模板创建实物
let huimao = new maomi({
name:"xiaohuihui"
})
console.log(huimao);
//4.保存到数据库
huimao.save()
1.向数据库增加数据
代码如下(示例):
//1.导入安装包
const mongoose = require('mongoose')
//2.链接数据库-库名------------默认返回promise
mongoose.connect('mongodb://localhost/abcd').then(() => {
console.log('数据库连接成功');
}).catch(err => {
console.log('数据库连接成功'+err);
})
// 1.用户信息的Schema-----------一个js文件
let userSchema = mongoose.Schema({
userName:String,
nickName:String,
gender:Number,
birthDay:Date,
hobby:Array,
})
// 2.符合Schema的model------一个js文件----(表名)集合名称,是复数模式
let useModel = mongoose.model('users',userSchema)
// 3.符合model的一条用户数据------在一起
let luFei = new useModel({
userName:'布鲁克',
nickName:'灵魂之王',
gender:1,
birthDay:'1999-12-26',
hobby:['音乐','美酒','内裤','牛奶','伙伴'],
})
// 4.插入数据库-------在一起
luFei.save((err,result) => {
if (err) {
console.log(err);
} else {
console.log('数据插入成功'+result);
}
})
2.从数据库查询数据
代码如下(示例):
//1.导入安装包
const mongoose = require('mongoose')
//2.链接数据库-库名------------默认返回promise
mongoose.connect('mongodb://localhost/abcd').then(() => {
console.log('数据库连接成功');
}).catch(err => {
console.log('数据库连接成功'+err);
})
// 1.用户信息的Schema-----------一个js文件
let userSchema = mongoose.Schema({
userName:String,
nickName:String,
gender:Number,
birthDay:Date,
hobby:Array,
})
// 2.符合Schema的model------一个js文件----(表名)集合名称,是复数模式
let useModel = mongoose.model('users',userSchema)
// 3.查询数据库
// useModel.find({userName:'路飞'},function(err,result){
// err?console.log('没有数据'+err):console.log(result)
// })
async function getData(){
let rs = await useModel
.find()//查找数据
.or([{gender:1}])//匹配符合选择 性比为1的数据
.sort({_id:'desc'})//依据id降序排列
.limit(2)//一次搜索前两条
.skip(4)//跳过四条数据
console.log(rs);
}
getData()
3.修改数据
代码如下(示例):
//1.导入安装包
const mongoose = require('mongoose')
//2.链接数据库-库名------------默认返回promise
mongoose.connect('mongodb://localhost/abcd').then(() => {
console.log('数据库连接成功');
}).catch(err => {
console.log('数据库连接成功'+err);
})
// 1.用户信息的Schema-----------一个js文件
let userSchema = mongoose.Schema({
userName:String,
nickName:String,
gender:Number,
birthDay:Date,
hobby:Array,
})
// 2.符合Schema的model------一个js文件----(表名)集合名称,是复数模式
let useModel = mongoose.model('users',userSchema)
// async function setData(){
// //查询数据
// let qb = await useModel.findOne({userName:'乔巴'})
// //修改数据
// qb.set({
// gender:3
// })
// //重新插入数据库
// qb.save()
// console.log(qb);
// }
// setData()
useModel.findOneAndUpdate({userName:'索隆'},{gender:'3'},{new:true},(err,rs) => console.log(rs))
属性new为true时显示更新过后的数据,为false则显示未更新的数据,但数据库已经更新完成。
4.删除数据
代码如下(示例):
const mongoose = require('mongoose')
//2.链接数据库-库名------------默认返回promise
mongoose.connect('mongodb://localhost/abcd').then(() => {
console.log('数据库连接成功');
}).catch(err => {
console.log('数据库连接成功'+err);
})
// 1.用户信息的Schema-----------一个js文件
let userSchema = mongoose.Schema({
userName:String,
nickName:String,
gender:Number,
birthDay:Date,
hobby:Array,
})
// 2.符合Schema的model------一个js文件----(表名)集合名称,是复数模式
let useModel = mongoose.model('users',userSchema)
// useModel.deleteOne({userName:'乔巴'},(err,rs) => console.log(rs))
useModel.deleteMany({gender:'1'},(err,rs) => console.log(rs))
// useModel.remove({userName:'弗兰奇'},{single:true},(err,rs) => console.log(rs))
deleteOne是删除指定的某一条符合匹配要求的数据,deleteMany是删除多条符合的匹配要求的数据。
remove可以根据single的布尔值true/false来确定删除一条或多条数据
true删除第一条符合要求的数据
false删除所有符合要求的数据
总结
增删改查四个代码页重复部分
const mongoose = require('mongoose')
//2.链接数据库-库名------------默认返回promise
mongoose.connect('mongodb://localhost/abcd').then(() => {
console.log('数据库连接成功');
}).catch(err => {
console.log('数据库连接成功'+err);
})
// 1.用户信息的Schema-----------一个js文件
let userSchema = mongoose.Schema({
userName:String,
nickName:String,
gender:Number,
birthDay:Date,
hobby:Array,
})
// 2.符合Schema的model------一个js文件----(表名)集合名称,是复数模式
let useModel = mongoose.model('users',userSchema)
后期项目中模块化之后这三个部分都单独的模块,便于代码的维护。