数据库相关概念

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

```
database: 数据库,mongoDB数据库软件中可以建立多个数据库
collection: 集合,一组数据的集合,可以理解为JavaScript中的数组
document: 文档,一条具体的数据,可以理解为JavaScript中的对象
field: 字段,文档中的属性名称,可以理解为JavaScript中的对象属性
```

mac系统使用mongodb:安装和启动

```
1.在mac系统下安装mongodb比较简单,执行命令 brew install mongodb,等待一会儿,就能安装成功
2.在第一个命令行窗口中执行命令 sudo mongod --config /usr/local/etc/mongod.conf,即可启动服务。然后在第二个窗口中输入mongo,就可以使用数据库了。
```

使用nodejs连接数据库

```
const http = require('http');
const moogoose = require('mongoose');
//数据库的连接 27017是mongodb数据库的默认端口
moogoose.connect('mongodb://localhost/27017',{ useNewUrlParser: true})
.then(()=>{
console.log('数据库连接成功')
})
.catch(()=>{
console.log('数据库连接失败')
})
//创建服务器
const app = http.createServer();
//为服务器对象添加请求事件
app.on('request',(req,res)=>{
res.end('ok')

})

//监听端口

app.listen(3000);

console.log('服务器已开启')

<h3>MongoDB增删改查操作</h3>
<h4>1.创建集合</h4>
<p>创建集合分为两步,一步是对集合设定规则,二是创建集合,创建mongoose.Schema构造函数的实例即可创建集合</p>

//设定集合规则

const courseSchema = new mongoose.Schema({

name:String,

author:String,

isPublished:Boolean

})

//创建集合并应用规则

const Course = mongoose.model('Course',courseSchema);//courses

<h4>2.创建文档</h4>
<p>创建文档实际上就是<span style="color:red;">向集合中插入数据</span></p>
<p>分为两步:</p>
<ul>
<li>创建集合实例</li>
<li>调用实例对象下的save方法将数据保存到数据库中</li>
</ul>

//创建集合实例

const course =new Course({

nameL'Node.js course',

author:'讲师',

tags:['node','backed'],

isPublished:true

});

//将数据保存到数据库中

course.save();

<h4>2.创建文档--另一种方法</h4>

Course.create({name:'JavaScript基础‘,author:'讲师‘,isPublish:true},(err,doc)=>{

//错误对象

console.log(err)

//当前插入的文档

console.log(doc)

});

13-Node.js学习笔记-MongoDB的更多相关文章

  1. 系列文章--Node.js学习笔记系列

    Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学 ...

  2. 一点感悟:《Node.js学习笔记》star数突破1000+

    写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...

  3. Node.js学习笔记(3):NPM简明教程

    Node.js学习笔记(3):NPM简明教程 NPM常用操作 更新NPM版本 npm install npm -g -g,表示全局安装.我们可以指定更新版本,只需要在后面填上@版本号即可,也可以输入@ ...

  4. Node.js学习笔记(2):基本模块

    Node.js学习笔记(2):基本模块 模块 引入模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在No ...

  5. Node.js学习笔记(1):Node.js快速开始

    Node.js学习笔记(1):Node.js快速开始 Node.js的安装 下载 官方网址:https://nodejs.org/en/ 说明: 在Windows上安装时务必选择全部组件,包括勾选Ad ...

  6. Node.js学习笔记(4):Yarn简明教程

    Node.js学习笔记(4):Yarn简明教程. 引入Yarn NPM是常用的包管理工具,现在我们引入是新一代的包管理工具Yarn.其具有快速.安全.可靠的特点. 安装方式 使用npm工具安装yarn ...

  7. Node.js 学习笔记之四:使用数据库

    这部分示例将示范SQLite3.MongoDB这两种不同类型的数据库在 Node.js 中的使用方法.首先,我们要在code目录下执行mkdir 06_database命令来创建用于存放这一组示例的目 ...

  8. Node.js学习笔记(3) - 简单的curd

    这个算是不算完结的完结吧,前段时间也是看了好久的Node相关的东西,总想着去整理一下,可是当时也没有时间: 现在看来在整理的话,就有些混乱,自己也懒了,就没在整理,只是简单的记录一下 一.demo的简 ...

  9. 强哥node.js学习笔记

    node后端语言: nodejs学习大纲:1.node安装2.node repl开发3.node sublime开发4.node 使用5.node 中创建第一个应用6.node 回调函数7.node ...

  10. Node.js学习笔记——Node.js开发Web后台服务

    一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...

随机推荐

  1. Stream系列(十二) PartitioningBy方法使用

    分割列表 视频讲解: https://www.bilibili.com/video/av78106120/ EmployeeTestCase.java package com.example.demo ...

  2. 实战webpack系列02

    02. 开始使用webpack 1.1.安装 Webpack可以使用npm安装,新建一个空的练习文件夹(此处命名为webpack sample project),在终端中转到该文件夹后执行下述指令就可 ...

  3. Prometheus 【目录】

    正在陆续更新,内容大体包括: rule.标签重置.cAdversior.自动发现(File 自动发现.DNS自动发现.k8s环境自动发现)等... 目录: prometheus[第一篇] Promet ...

  4. 一个null,差点把系统给弄崩溃了

    今天生产上面发现了一个奇异的bug,URL上面会带上一个ID,这个ID是关联别的系统的,类似这种格式 xxx.xxx.xxx.xxx  ,是别的系统自己填写的,我们的URL会带上id=xxx.xxx. ...

  5. Python中的Base64编码的加密与解密

    Base64 可以干些啥? Base64编码的作用: 由于某些系统中只能使用ASCII字符.Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法. 图片(and种子)base64 ...

  6. AI:为你写诗,为你做不可能的事

    最近,一档全程高能的神仙节目,高调地杀入了我们的视野: 没错,就是撒贝宁主持,董卿.康辉等央视名嘴作为评审嘉宾,同时集齐央视"三大名嘴"同台的央视<主持人大赛>,这够不 ...

  7. 转:logback的使用和logback.xml详解

    一.logback的介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch.它当前分为下面下个模块: logback-core:其它两 ...

  8. 洛谷 题解 P1842 【奶牛玩杂技】

    本蒟蒻又双叒叕被爆踩辣! Solution: 我们先看数据,50000,那么O(n)或者O(n log(n))是可以过的,非严格O(n * sqrt(n))要卡卡常,说不定也可以过. 那么什么算法可以 ...

  9. Swift语法注意

    一直没有太弄明白可选值以及解包.下面说一下几点理解: OC中与Swift的nil 的区别: OC中nil表示指向不存在对象的指针 swift中表示值不存在,任何类型的可选值都可以为nil,包含基本数据 ...

  10. Vue中使用iconfont

    学习博客:https://www.imooc.com/article/33597?block_id=tuijian_wz