Node.js-3.数据库MongoDB

数据库概念和环境搭建

什么是数据库

数据库即存储数据的仓库,可以将数据进行有序的分门别类的存储。它是独立于语言之外的软件,可以通过API去操作它。

  • 常见的数据库软件有:mysql、mongoDB、oracle。
    在这里插入图片描述
    在这里插入图片描述

MongoDB数据库下载安装

官网下载

链接:https://pan.baidu.com/s/1Yikc-vgqCXmmWd1SDIshAw
提取码:eml6
复制这段内容后打开百度网盘手机App,操作更方便哦

在这里插入图片描述

MongoDB可视化软件

MongoDB可视化操作软件,是使用图形界面操作数据库的一种方式。

在这里插入图片描述

数据库相关概念

在一个数据库软件中可以包含多个数据仓库,在每个数据仓库中可以包含多个数据集合,每个数据集合中可以包含多条文档(具体的数据)。

在这里插入图片描述

Mongoose第三方包

使用Node.js操作MongoDB数据库需要依赖Node.js第三方包mongoose
使用npm install mongoose命令下载

启动和关闭MongoDB

启动

net start mongoDB

关闭

net stop mongoDB

连接数据库 (★★★★★ )

使用mongoose提供的connect方法即可连接数据库。

//首先引入mongoose 
const mongoose = require('mongoose')
    //数据库地址/数据库名称
mongoose.connect('mongodb://localhost/playground', {
    useNewUrlParser: true, useUnifiedTopology: true })
    .then(() => console.log('数据库连接成功'))
    .catch(err => console.log('数据库连接失败', err));

创建数据库

在MongoDB中不需要显式创建数据库,如果正在使用的数据库不存在,MongoDB会自动创建

MongoDB增删改查

创建集合

创建集合分为两步,
1.是对对集合设定规则
2.是创建集合,创建mongoose.Schema({});构造函数的实例即可创建集合。

// 一、连接数据库
//首先引入mongoose 
const mongoose = require('mongoose')
    //数据库地址/数据库名称
mongoose.connect('mongodb://localhost/playground', {
    useNewUrlParser: true, useUnifiedTopology: true })
    .then(() => console.log('数据库连接成功'))
    .catch(err => console.log('数据库连接失败', err));

// 二、创建集合
//创建集合规则
const courseSchema = new mongoose.Schema({
   
    name: String,
    author: String,
    isPublishhed: Boolean
})

// 使用规则创建集合
                            // 1.集合名称
                                        // 2.集合规则
const Course = mongoose.model('Course', courseSchema);
//当前集合的构造函数

现在我们运行文件发现并没有发现有这个数据库
这是因为这里没有插入数据

创建文档 - 插入数据

创建文档实际上就是向集合中插入数据

分为两步:

  1. 创建集合实例。
  2. 调用实例对象下的save方法将数据保存到数据库中。
  // 创建集合实例
 const course = new Course({
   
     name: 'Node.js course',
     author: '123',
     tags: ['a', 'b'],
     isPublished: true
 });
  // 将数据保存到数据库中
 course.save();

实际代码

// 一、连接数据库
//首先引入mongoose 
const mongoose = require('mongoose')
    //数据库地址/数据库名称
mongoose.connect('mongodb://localhost/playground', {
    useNewUrlParser: true, useUnifiedTopology: true })
    .then(() => console.log('数据库连接成功'))
    .catch(err => console.log('数据库连接失败', err));

// 二、创建集合
//创建集合规则
const courseSchema = new mongoose.Schema({
   
    name: String,
    author: String,
    isPublishhed: Boolean
})

// 使用规则创建集合
                            // 1.集合名称
                                        // 2.集合规则
const Course = mongoose.model('Course', courseSchema);
//当前集合的构造函数

// 三.插入数据
// 创建集合实例
const course = new Course({
   
    name: 'Node.js',
    author: 'zhangsan',
    tags: ['node', 'course'],//没有在集合规则里定义tags  所以数据库没有这个属性
    isPublished: true
});
// 调用 save方法 将数据保存到数据库中
course.save();

在这里插入图片描述

方法二 create()

集合实例名称.create({
   '要插入的文档对象'},(err,doc)=>{
   '回调函数'})

通过回调函数

Course.create({
   name: 'JavaScript', author: 'zhangsan', isPublish: true}, (err, doc) => {
    
     //  错误对象
    console.log(err)
     //  当前插入的文档
    console.log(doc)
});

通过Promis对象

Course.create({
   name: 'JavaScript', author: '张三', isPublish: true})
      .then(doc => console.log(doc))
      .catch(err => console.log(err))

mongoDB数据库导入数据

mongoimport –d 数据库名称 –c 集合名称 –file 要导入的数据文件

找到mongodb数据库的安装目录,将安装目录下的bin目录放置在环境变量中。


// .json文件
{
   "_id":{
   "$oid":"5c09f1e5aeb04b22f8460965"},"name":"张三","age":20,"hobbies":["足球","篮球","橄榄球"],"email":"zhangsan@itcast.cn","password":"123456"}
{
   "_id":{
   "$oid":"5c09f236aeb04b22f8460967"},"name":"李四","age":10,"hobbies":["足球","篮球"],"email":"lisi@itcast.cn","password":"654321"}
{
   "_id":{
   "$oid":"5c09f267aeb04b22f8460968"},"name":"王五","age":25,"hobbies":["敲代码"],"email":"wangwu@itcast.cn","password":"123456"}
{
   "_id":{
   "$oid":"5c09f294aeb04b22f8460969"},"name":"赵六","age":50,"hobbies":["吃饭","睡觉","打豆豆"],"email":"zhaoliu@itcast.cn","password":"123456"}
{
   "_id":{
   "$oid":"5c09f2b6aeb04b22f846096a"},"name":"王二麻子","age":
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值