前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >48、mongoose入门

48、mongoose入门

作者头像
Ewall
发布于 2018-11-21 10:31:03
发布于 2018-11-21 10:31:03
2.1K00
代码可运行
举报
文章被收录于专栏:vue学习vue学习
运行总次数:0
代码可运行

前言:本入门篇文章我是直接把mongoose官网中的“Quick Start”看了一遍,然后在此基础上自己于本机上实践一番后写的;所以,文章中的代码和解释性文字大部分都来着官网,我这只不过是白话版,大家可以去官网阅读后,再结合我这篇文章亲自实践操作一番,效果可能会更好。

1、约定

现在假设我们想把看到的每一只猫都用数据库给记录下来,即每只猫都是一条document(数据行)。

2、什么是mongoose?

Mongoose是MongoDB的一个对象模型工具,是基于node-mongodb-native开发的MongoDB nodejs驱动,可以在异步的环境下执行。同时它也是针对MongoDB操作的一个对象模型库,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单。 mongoose入门—狼叔 mongoose官网快速入门篇

3、安装mongoose

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ npm install mongoose

4、连接数据库并监听数据库是否连接成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var mongoose = require('mongoose');
mongoose.connect('[mongodb://localhost/test');](mongodb://localhost/test');)
mongoose.connection.on('error',(err) => {
    console.log(`数据库连接失败${err}`);
});
mongoose.connection.on('open',() => {
    console.log('数据库连接成功');
});

OK,现在假设我们连接数据库已经成功了。

5、定义Schema和模型

(1)既然要记录所看到的每一只猫,更为具体一点,我们就是要记录所看到的的每一只猫的名字 在mongoose中,所有的东西都来源自Scehma,我们用它来定义文档的结构。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var kittySchema = new mongoose.Schema({
    name: String
});

(2)现在我们拥有一个name属性string类型Schema,下一步用它构造生成一个模型Model

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var Kitten = mongoose.model('Kitten', kittySchema);

6、实例化Model

(1)模型是用于构造文档的类,接下来,让我们实例化这个Ketten模型,把我们刚刚在路边上看到的那只猫(数据记录行document)给记录下来,起个名叫做塞冷丝

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var silence = new Kitten({name: 'Silence'});
console.log(silence.name); // 'Slience'

7、添加函数方法

(1)猫都是会叫的,让我们看看怎么在文档中添加“说话”的功能

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 记得一定要在构造生成Model之前把这个方法添加到Schema
kittySchema.methods.speak = function() {
  var greeting = this.name ? 'My name is " + this.name : 'I do not have a name'; 
  console.log(greeting);
}
var Kitten = mongoose.model('Kitten', kittySchema);

(2)这样,在Schemamethods中添加了一个speak的方法,该方法会暴露在每一个文档实例中,于是所有的实例都可访问到这个方法(类似于原型链中方法的继承)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
silence.speak(); // My name is Silence

8、保存到数据库

ok,现在我们看到的这只猫又有名字又会说话了,接下来就是把它保存到MongoDB数据库中; save方法用于保存document到数据库,第一个参数err用于检测回调函数是否报错。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
silence.save(function(err, silence) { 
  if(err) return console.log(err);
  silence.speak();
}

9、查询

随着时间的流逝,现在我们想看看已经记录了多少只猫了; 我们可以通过Kitten模型访问我们所有记录过的所有小猫(数据记录行document

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Kitten.find(function(err, doc) { 
  if(err) return console.log(err);
  console.log(doc);
}

10、结言

还是回到开头,这篇文章主要还是翻译了官网然后加上自己的一些理解以较白话的形式呈现出来的,希望对你理解有帮助,翻译水平不是很好,见谅。

参考学习 mongoose入门—狼叔 mongoose官网快速入门篇

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.11.20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
mongoose食用姿势!
Mongoose库简而言之就是对node环境中MongoDB数据库操作的封装,一种对象模型工具,可以将数据库中的数据转换为JavaScript对象供我们使用。
十月梦想
2018/08/29
1.6K0
Nodejs学习笔记(十四)— Mongoose介绍和入门
简介   Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具   那么要使用它,首先你得装上node.js和mongodb,关于mongodb的安装和操作介绍可以参考:http://www.cnblogs.com/zhongweiv/p/node_mongodb.html   Github地址:https://github.com/Automattic/mongoose   API Docs:http://mongoosejs.com/docs/guide.html   
Porschev
2018/03/28
3K0
Nodejs学习笔记(十四)— Mongoose介绍和入门
在线商城项目10-基于mongoose实现商品列表查询
step1 先建goods集合对应的model 在根目录下新建一个目录models存放所有的model,新建good.js:
love丁酥酥
2018/08/27
3.9K0
在线商城项目10-基于mongoose实现商品列表查询
mongoose官方文档总结
你也可以设定虚拟值的 setter ,下例中,当你赋值到虚拟值时,它可以自动拆分到其他属性:
六个周
2022/10/28
21.2K0
Mongoose学习参考文档
一、快速通道 1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对 Entity : 由Model创建的实体,他的操作也会影响数据库 注意: 1.本学习文档采用严格命名方式来区别不同对象,例如: var PersonSchema; //Person的文本属性 var PersonModel; //Person的数据库模型 var Per
庞小明
2018/03/07
24.6K0
初试MongoDB学习之Mongoose的使用
在MongoDB中,多个Document可以组成Collection(以下简称集合),多个集合又可以组成数据库。我们想要操作MongoDB数据,那就得先要具备上面所说的包含数据的“文档”,文档又是什么意思呢,请看如下介绍。
九旬
2020/10/23
6.3K0
初试MongoDB学习之Mongoose的使用
Mongoose模块化实践
Mongoose为操作MongoDB数据库提供了很大的方便,在实际开发过程中,为了保证可扩展与可维护性,通常会将Mongoose进行模块化,下面记录一个模块化的实例,便于在以后的项目中复用。
越陌度阡
2020/11/26
1.1K0
Mongoose 操作数据库实现增、删、改、查
Mongoose 是在 Node.js 异步环境下对 mongodb 进行便捷操作的对象模型工具,Mongoose 是 NodeJS 的驱动,为NodeJS独有。
越陌度阡
2020/11/26
2K0
前后端演示SHA1,MD5加密登录(带数据库)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/j_bleach/article/details/74131038
j_bleach
2019/07/02
1.3K0
前后端演示SHA1,MD5加密登录(带数据库)
mongoose验证
enum: [‘html’, ‘css’, ‘javascript’, ‘node.js’]
Qwe7
2022/05/23
2.6K0
Mongoose中的修饰符
Mongoose提供了修饰符功能用于对存取的数据进行一些加工,常用的修饰符有以几下几种:
越陌度阡
2020/11/26
1.3K0
Mongoose aggregate 多表关联查询
使用Mongoose操作MongoDB数据库进行关联查询是一种比较常见的操作,操作方式有哪几种呢?下面用一个具体的案例来演示。
越陌度阡
2020/11/26
3.7K0
Angular的网络请求(展示商品)
* 连接mongodb数据库的命令: * 1.进入MongoDB下的bin文件夹下--cd 路径 * 2.命令--mongod --dbpath=C:\Users\lx\Desktop\Node\MongoDB\DB * 3.再打开一个cmd * 4.重复第一步--cd 路径 * 5.命令--mongo
生南星
2019/07/22
1.1K0
MongoDB
mysql数据库 -- 关系型数据库--表,字段,行 mongodb数据库 -- 非关系型数据库--集合,域,文档 mongodb的使用步骤: 1.安装 2.指定数据库的安装位置(创建一个文件夹,管理mongodb的所有数据) 3.使用mongodb链接该文件夹,Windows下mongodb的命令需要在其安装目录下执行才有效. mongod --dbpath=文件夹路径 4.启动mongodb, mongo 连接mongodb数据库的命令: 1.进入MongoDB下的bin文件夹下--cd 路径 2.命令--mongod --dbpath=C:\Users\lx\Desktop\Node\MongoDB\DB
生南星
2019/07/22
2.8K0
架构和数据库
下载地址:https://www.mongodb.com/try/download/community
张哥编程
2024/12/13
6290
如何使用Mongoose创建一个数据处理的模块
Schema 是 Mongoose 中定义文档结构的方式。在model/index.js中定义 Schema
炑焽
2025/01/11
4411
如何使用Mongoose创建一个数据处理的模块
大数据技术之_22_MongoDB学习_MongoDB 的简介、下载、安装、启动、配置和关闭 + MongoDB 的基本操作 + Mongoose + 使用 java 对 MongoDB 增删改查
  • 数据库是按照数据结构来组织、存储和管理数据的仓库。   • 我们的程序都是在内存中运行的,一旦程序运行结束或者计算机断电,程序运行中的数据都会丢失。   • 所以我们就需要将一些程序运行的数据持久化到硬盘之中,以确保数据的安全性。而数据库就是数据持久化的最佳选择。   • 说白了,数据库就是存储数据的仓库。
黑泽君
2019/05/15
18.2K0
Nodejs和Mongodb的连接器Mongoose
今天我们将学习Mongoose,什么是Mongoose呢,它于MongoDB又是什么关系呢,它可以用来做什么呢,介绍Mongoose之前,我们先简单了解一下MongoDB。
笔阁
2018/09/04
6.3K0
Nuxt + Koa2 + Mongodb 手撸一个网上商城
文档地址:https://finget.github.io/2019/08/06/nuxt-koa-mongodb/
FinGet
2019/08/09
9.8K1
Nuxt + Koa2 + Mongodb 手撸一个网上商城
使用 Mongoose 操作 MongoDB
Mongoose是在node.js环境下对mongodb进行便捷操作的对象模型工具。
4O4
2022/04/25
1.8K0
使用 Mongoose 操作 MongoDB
相关推荐
mongoose食用姿势!
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验