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

48、mongoose入门

作者头像
Ewall
发布2018-11-21 18:31:03
2K0
发布2018-11-21 18:31:03
举报
文章被收录于专栏:vue学习vue学习

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

1、约定

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

2、什么是mongoose?

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

3、安装mongoose

$ npm install mongoose

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

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,我们用它来定义文档的结构。

var kittySchema = new mongoose.Schema({
    name: String
});

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

var Kitten = mongoose.model('Kitten', kittySchema);

6、实例化Model

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

var silence = new Kitten({name: 'Silence'});
console.log(silence.name); // 'Slience'

7、添加函数方法

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

// 记得一定要在构造生成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的方法,该方法会暴露在每一个文档实例中,于是所有的实例都可访问到这个方法(类似于原型链中方法的继承)

silence.speak(); // My name is Silence

8、保存到数据库

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

silence.save(function(err, silence) { 
  if(err) return console.log(err);
  silence.speak();
}

9、查询

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

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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、约定
  • 2、什么是mongoose?
  • 3、安装mongoose
  • 4、连接数据库并监听数据库是否连接成功
  • 5、定义Schema和模型
  • 6、实例化Model
  • 7、添加函数方法
  • 8、保存到数据库
  • 9、查询
  • 10、结言
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档