nodeJs连接数据库MongoDB
2019-12-29 本文已影响0人
五四青年_4e7d
连接启动数据库:
net start mongodb
下载node_modules依赖包(必备):
cnpm i
下载第三方依赖包(连接数据库必备):
cnpm install mongoose
连接数据库代码细则:
// 引用mongoose包
const mongoose = require("mongoose");
// 数据库链接
mongoose
.connect("mongodb://localhost/playground", {
useUnifiedTopology: true,
useNewUrlParser: true
})
.then(() => console.log("数据库连接成功"))
.catch(err => console.log("数据库连接失败", err));
启动项目:
QQ图片20191229125544.png
创建集合(为集合设定规则):
//创建集合规则:
const courseSchema = new mongoose.Schema({
name:String,
author:String,
isPublished:Boolean
})
//使用规则创建集合:
const Course = mongoose.model('Course',courseSchema)
//插入数据:
const course = new Course({
name:"李慷",
author:"js基础",
isPublished:true
})
//保存数据save:
course.save()
插入成功数据库预览:
image.png
异步函数方式插入集合:
// 引用mongoose包
const mongoose = require("mongoose");
// 数据库链接
mongoose
.connect("mongodb://localhost/playground", {
useUnifiedTopology: true,
useNewUrlParser: true
})
.then(() => console.log("数据库连接成功"))
.catch(err => console.log("数据库连接失败", err));
//创建集合规则:
const courseSchema = new mongoose.Schema({
name: String,
author: String,
isPublished: Boolean
})
//使用规则创建集合:
const Course = mongoose.model('Course', courseSchema)
//使用第二种方式创建集合
Course.create({
name: "李慷账户2",
author: "js基础1",
isPublished: false
},(err,result)=>{
console.log(err)
console.log(result)
})
把json文件导入数据库:
1.首先配置全局的变量:
C:\Program Files\MongoDB\Server\4.1\bin (找到安装路径)
2.我的电脑属性中:
我的电脑->高级系统设置->环境变量->系统变量->把以上路径复制确认
3.执行链接命令:
mongoimport -d playground -c users --file ./uer.json
注意只有执行完前两部才能有效执行mongoimport (命令) playground (当前数据库) users(集合名称) uer.json(当前同路径下的json文件)
4.执行成功截图:
image.png image.png
两种文档数据查询条件find和findeone
// 引用mongoose包
const mongoose = require("mongoose");
// 数据库链接
mongoose
.connect("mongodb://localhost/playground", {
useUnifiedTopology: true,
useNewUrlParser: true
})
.then(() => console.log("数据库连接成功"))
.catch(err => console.log("数据库连接失败", err));
//创建集合规则:
const courseSchema = new mongoose.Schema({
name: String,
author: String,
isPublished: Boolean
})
//使用规则创建集合:
const Course = mongoose.model('Course', courseSchema)
//使用第二种方式创建集合
Course.create({
name: "李慷账户2",
author: "js基础1",
isPublished: false
},(err,result)=>{
})
//按照id条件查询:
// Course.find({_id :'5e083ea94d5de34f241235b5'}).then(result => console.log(result))
//返回的是一个对象
Course.findOne({name:'李慷账户2'}).then(result => console.log(result))
多种条件查询(匹配大于小于):
//根据当前的字段大于小于之间查询
Course.find({age:{$gt:20,$lt:40}}).then(result => console.log(result))
多种条件查询(匹配包含):
//匹配包含字段值:
Course.find({ hobbies: { $in: ['足球'] } }).then(result => console.log(result))
字段查询(-查询):
// 选择要查询的字段:
// -_id表示不需要查询这个字段
Course.find().select('name email -_id').then(result => console.log(result))
升序降序查询:
//数据查询-降序,升序,排序
Course.find().sort('age').then(result => console.log(result))
Course.find().sort('-age').then(result => console.log(result))
分页查询:
//分页查询
Course.find().skip(2).limit(3).then(result => console.log(result))
根据条件(字段)删除接口:
// 删除接口:
Course.findOneAndDelete({name: '李慷账户'}).then(result => console.log(result))
根据id删除接口:
// 根据id删除接口:
Course.findOneAndDelete({_id: '5e08c175ba41c25a5cd79b61'}).then(result => console.log(result))
删除数据库所有数据(慎重操作):
//删除所有的数据:
Course.deleteMany({}).then(result => console.log(result))
修改(更新一个)接口:
//修改(更新操作):
Course.updateOne({name:"李慷账户admin"},{name:"李慷test"}).then(result => console.log(result))
修改(多个参数)接口:
//多个修改操作:
Course.updateMany({},{name:"李慷"}).then(result => console.log(result))
mongoose的验证规则(required minlength maxlength trim):
// 引用mongoose包
const mongoose = require("mongoose");
// 数据库链接
mongoose
.connect("mongodb://localhost/playground", {
useUnifiedTopology: true,
useNewUrlParser: true
})
.then(() => console.log("数据库连接成功"))
.catch(err => console.log("数据库连接失败", err));
//创建集合规则:
const postSchema = new mongoose.Schema({
title:{
type:String,
//必选字段:
required:[true,"请传入文章标题"],
//字符串的最大最小长度:
minlength:[2,"文章长度不能小于2"],
maxlength:[16,"文章长度不能大于16"],
//去除空格:
trim:true
}
})
const Post = mongoose.model('Post',postSchema)
Post.create({title:'文章标题'}).then(result => console.log(result))