一起学mongoDB

跟我学 node + MongoDB

一、MongoDB数据库安装

1.1 下载与安装

下载地址:https://www.mongodb.com/download-center/community

下载MongoDB

MongoDB可视化操作软件,是使用图形界面操作数据库的一种方式。
下载地址:https://www.mongodb.com/try/download/compass

下载MongoDB的图形化工具

图形化工具

这里都是一些傻瓜式安装,不懂得话百度下就差不多了。

1.2 数据库相关概念说明

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

image.png

二、MongoDB的搭建

  • 使用Node.js操作MongoDB数据库需要依赖Node.js第三方包mongoose
  • 使用npm install mongoose命令下载
1. MongoDB的连接与停止

// 启动 MongoDB 服务
net start mongodb  

// 停止 MongoDB 服务
net stop mongodb

// 安装 mongoose 第三方包 ,用于 node 操作 MongoDB 数据库 
cd 进入 项目目录,安装 -->  
npm install mongoose

2.1 node.js 连接MongoDB数据库

使用mongoose提供的connect方法即可连接数据库。
在MongoDB中不需要显式创建数据库,如果正在使用的数据库不存在,MongoDB会自动创建。

mongoose.connect('mongodb://localhost/playground')
        .then(() => console('连接数据库成功'))
  .catch(err => console('连接数据库失败',err));
完整写法:
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/playground',{useNewUrlParser:true, useUnifiedTopology: true})
  .then(() => console.log('连接数据库成功'))
  .catch(err => console.log('连接数据库失败'));

三、MongoDB 增删改查操作

3.1 创建集合

创建集合分为两步,一是对对集合设定规则,二是创建集合,创建mongoose.Schema构造函数的实例即可创建集合。
如果集合中没有数据(文档),数据库中是不会显示该集合的。

// 设定集合规则 
const courseSchema = new mongoose.Schema({ 
 name: String, 
 author: String, 
 isPublished: Boolean 
}); 
// 创建集合并应用规则 
const Course = mongoose.model('Course', courseSchema); // courses

3.2 创建文档

创建文档实际上就是向集合中插入数据。
3.2.1 方式1
分为两步:
① 创建集合实例。
② 调用实例对象下的save方法将数据保存到数据库中。

// 创建集合实例 
const course = new Course({ 
 name: 'Node.js course', 
 author: '讲师', 
 tags: ['node', 'backend'], 
 isPublished: true 
}); 
// 将数据保存到数据库中 
course.save();

3.2.2 方式2

Course.create({
 name: 'JavaScript基础', author: '讲师', isPublish: true}, (err, doc) => { 
  // 错误对象 
  console.log(err) 
  // 当前插入的文档 
  console.log(doc) 
}); 
// 另一种写法
Course.create({name: 'JavaScript基础', author: '讲师', isPublish: true})   
      .then(doc => console.log(doc)) 
      .catch(err => console.log(err))

3.3 MongoDB 数据库导入数据

mongoimport –d 数据库名称 –c 集合名称 –file 要导入的数据文件
找到mongodb数据库的安装目录,将安装目录下的bin目录放置在环境变量中。

如果找不到 mongoimport文件 --> 原因: mongoimport mongoexport mongodump mongorestore 等工具,作为 mongodb database tools 提供了单独的下载入口 https://www.mongodb.com/try/download/database-tools?tck=docs_databasetools

image.png

将下载好的 文件 解压到mongodb的目录下,然后配置环境变量。我的目录是 G:\MongoDB_new\database-tools\tools\bin

image.png

配置成功后,即可使用 mongoimport 命令 ,比如 :

mongoimport -d playground -c users --file .\user.json  
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269