Mongoose 官网地址:http://mongoosejs.com/   ,Mongoose 为node.js提供了优雅的,针对mongodb的ODM(Object Document Mapping,本质也属于一种ORM,不过是基于MongoDB、Redis这种NoSQL的)解决方案。

  下面通过实际例子进行体验,首先确保机器上安装好了MongoDB和Node.js。

  通过命令行安装Mongoose

npm install mongoose

假设我们想把碰到的小猫的信息都保存到MongoDB中,第一件事先引入mongoose模块,并声明一个mongoose连接,用来连接本地的test数据库,默认端口是27017

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

  现在我们有了一个未决的连接。如果我们成功连接,或者出现连接错误,我们需要得到通知:

var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() { //一旦连接成功,将触发这个回调函数
console.log( ' connected! ') ;
});

  下面我们用真正的业务逻辑代码加入到上面的回调函数中

//定义一个Schema,类似于关系型数据库中的表结构//定义一个Schema,类似于关系型数据库中的表结构
varvar kittySchema = kittySchema = newnew mongoose.Schema({
name: String
}); mongoose.Schema({ name: S
//给 kittySchema 添加一个行为属性
kittySchema.methods.speak = function () {
var greeting = this.name
? "Meow name is " + this.name
: "I don't have a name";
console.log(greeting);
}
//将一个schema映射成一个Model类
var Kitten = mongoose.model('Kitten', kittySchema); //实例化一个Model对象
var fluffy = new Kitten({ name: 'fluffy' });
fluffy.speak(); //持久化
fluffy.save(function (err, fluffy) {
if (err) return console.error(err);
fluffy.speak();
});
                                 

下面再体验下查询:

//查询所有
Kitten.find(function (err, kittens) {
if (err) return console.error(err);
console.log(kittens);
})

//条件查询
Kitten.find({ name: /^fluff/ }, function (err, kittens) {
console.log(kittens[0].name) ;
});

             

Mongoose简介的更多相关文章

  1. mongoose中connect()、createConnection()和connection的区别和作用

    转文:原文 1 mongoose简介 在使用mongodb数据库开发项目中,nodejs环境下可能会使用到mongoose模块连接并操作mongodb数据库.mongoose模块相当于Java中的数据 ...

  2. Practical Node.js (2018版) 第7章:Boosting Node.js and Mongoose

    参考:博客 https://www.cnblogs.com/chentianwei/p/10268346.html 参考: mongoose官网(https://mongoosejs.com/docs ...

  3. Mongoose轻松搞定MongoDB,不要回调!

    MEAN开发栈中使用MongoDB的时候,与之配对的ORM最好的选择就是Mongoose了.本文就和大家一起探讨一下如何使用Mongoose来实现MongoDB的增删改查. 为了能使文中的例子更加生动 ...

  4. mongodb使用简介

    mongodb简介 在使用nodejs时候,需要存储一些简单json数据的情况下,很多人会推荐使用mongodb.mongodb是一个文档型数据库,在 sql 中,数据层级是:数据库(db) -> ...

  5. MongoDB学习笔记二- Mongoose

    MongoDB学习笔记二 Mongoose Mongoose 简介 之前我们都是通过shell来完成对数据库的各种操作, 在开发中大部分时候我们都需要通过程序来完成对数据库的操作 而Mongoose就 ...

  6. mongodb入门笔记

    mongodb作为nosql中排名第一的数据库,近年来使用的人数越来越多,作为开发人员,非常有必要了解下mongodb数据库.下面就给大家介绍下mongodb数据库的基本知识,有不对的地方欢迎指正,Q ...

  7. mongodb入门级的视频教程-简易客户管理系统制作

    本套教程作为mongodb入门级的视频教程,首先讲解了mongodb的下载.安装,环境变量的设置.启动mongodb和将mongodb安装成为windows服务.然后进一步讲解了mongodb里面集合 ...

  8. nodejs(三)下之mangoDB

    mongoDB 简介 一.什么是MongoDB ? 1.MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能. 2.Mo ...

  9. ApacheCN NodeJS 译文集 20211204 更新

    Node API 开发入门指南 零.前言 一.Node.js 简介 二.构建 API--第 1 部分 三.构建 API--第 2 部分 React TypeScript Node 全栈开发 零.序言 ...

随机推荐

  1. shell关于文件操作

    一.如何将一个十进制的整数用2进制表示出来? echo "obase=2;50" | bc 二.Linux下经常需要删除空白行,grep,sed,awk,tr等工具均可实现 gre ...

  2. python django基础五 ORM多表操作

    首先在创建表的时候看下分析一下 1.作者表和作者详细地址表  一对一关系 理论上谁都能当主表 把Author设置成主表 au=models.OneToOneField(to='AuthorDetail ...

  3. ruby 中 手动执行job任务

    step1:通过crtk客户端 进入项目主目录 step2:rails c step3:job类名.new.方法名 例:MonthWorkPlanJob.new.perform

  4. UEditor js动态创建和textarea中渲染【原】

    UEditor动态创建和textarea中渲染 http://ueditor.baidu.com/website/examples/textareaDemo.html <!DOCTYPE> ...

  5. HDU 6433(2的n次方 **)

    题意是就是求出 2 的 n 次方. 直接求肯定不行,直接将每一位存在一个数组的各个位置即可,这里先解出 2 的 n 次方的位数,再直接模拟每一位乘以 2 即可得到答案. 求解 2 的 n 次方的位数的 ...

  6. HDU 1052(田忌赛马 贪心)

    题意是田忌赛马的背景,双方各有n匹马,下面两行分别是田忌和齐王每匹马的速度,要求输出田忌最大的净胜场数*每场的赌金200. 开始的时候想对双方的马匹速度排序,然后比较最快的马,能胜则胜,否则用最慢的马 ...

  7. HTML第二耍 列表标签

    先复习下上一节 <!doctype html> <html> <head> <meta charset="utf-8"> <t ...

  8. .net程序集

    单程序集 多个.dll或exe 文件 多程序集 单个.dll或exe 文件 单程序集 是一个单一 独立明确定义的包,这个包中包含有程序集清单,CIL和类型元数据 多程序集程序集基本由二进制文件组成(称 ...

  9. linux常用命令说明

    1. 基础快捷键使用 ctrl + c:停止进程 ctrl + l:清屏 ctrl + r:搜索历史命令 ctrl + q:退出 2.常用目录或文件夹命令 说明:安装linux时,创建一个itcast ...

  10. idea JRebe插件激活方法

    具体方法请看创始人博客及github