Mongoose简介
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简介的更多相关文章
- mongoose中connect()、createConnection()和connection的区别和作用
转文:原文 1 mongoose简介 在使用mongodb数据库开发项目中,nodejs环境下可能会使用到mongoose模块连接并操作mongodb数据库.mongoose模块相当于Java中的数据 ...
- Practical Node.js (2018版) 第7章:Boosting Node.js and Mongoose
参考:博客 https://www.cnblogs.com/chentianwei/p/10268346.html 参考: mongoose官网(https://mongoosejs.com/docs ...
- Mongoose轻松搞定MongoDB,不要回调!
MEAN开发栈中使用MongoDB的时候,与之配对的ORM最好的选择就是Mongoose了.本文就和大家一起探讨一下如何使用Mongoose来实现MongoDB的增删改查. 为了能使文中的例子更加生动 ...
- mongodb使用简介
mongodb简介 在使用nodejs时候,需要存储一些简单json数据的情况下,很多人会推荐使用mongodb.mongodb是一个文档型数据库,在 sql 中,数据层级是:数据库(db) -> ...
- MongoDB学习笔记二- Mongoose
MongoDB学习笔记二 Mongoose Mongoose 简介 之前我们都是通过shell来完成对数据库的各种操作, 在开发中大部分时候我们都需要通过程序来完成对数据库的操作 而Mongoose就 ...
- mongodb入门笔记
mongodb作为nosql中排名第一的数据库,近年来使用的人数越来越多,作为开发人员,非常有必要了解下mongodb数据库.下面就给大家介绍下mongodb数据库的基本知识,有不对的地方欢迎指正,Q ...
- mongodb入门级的视频教程-简易客户管理系统制作
本套教程作为mongodb入门级的视频教程,首先讲解了mongodb的下载.安装,环境变量的设置.启动mongodb和将mongodb安装成为windows服务.然后进一步讲解了mongodb里面集合 ...
- nodejs(三)下之mangoDB
mongoDB 简介 一.什么是MongoDB ? 1.MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能. 2.Mo ...
- ApacheCN NodeJS 译文集 20211204 更新
Node API 开发入门指南 零.前言 一.Node.js 简介 二.构建 API--第 1 部分 三.构建 API--第 2 部分 React TypeScript Node 全栈开发 零.序言 ...
随机推荐
- Web API中的路由(一)——约定路由
一.Web API中的路由概念 路由的作用用一句话说明:通过request的uri找到处理该请求的Controller,Action,以及给Action的参数赋值. 一些路由的基本概念: route: ...
- Ubuntu 启动服务 失败 的 可能解决办法
➜ ~ service nfs-kernel-server start Job for nfs-server.service canceled. 如果遇到服务启动失败,请检查有关的文件夹是否创建( ...
- springboot(十九):SpringBoot+EHcache实现缓存
https://blog.csdn.net/qq_28143647/article/details/79789368
- DataReader分页性能测试
参考程序地址:http://www.cnblogs.com/eaglet/archive/2008/10/09/1306806.html 最近遇见程序慢的问题,使用的DataReader,猜想是分页导 ...
- jquery判断对象是否存在
if($("#abc").length >0) { ... } if($("#abc").html() != "") { ... }
- windows生成dump文件
windows下程序有时突然崩溃了,偶发性的崩溃很难找.于是就需要保存崩溃时的dump信息了. 下面是关于如何生成dmp文件的代码. 头文件 #pragma once #include <win ...
- Javaweb学习笔记——(二十一)——————过滤器
过滤器 过滤器概述 1.什么是过滤器: 过滤器javaweb三大组件之一,它与Serlvet很相似,不过它过滤器是用来拦截请求的,而不是处理 ...
- 如何利用iconfont图标代替小图片
1.首先 你要有一个阿里巴巴矢量图这个网站的账号:http://www.iconfont.cn/ 在这里注册哦~ 2.蓝后 可以在首页搜索你想要的图标,比如 我想放一个管理员的图标在页面上: 就要点击 ...
- IDAPython教程(二)
继续我们的主题—使用IDAPython 让逆向工程师的生活变得更美好. 这一部分,我们将着手处理一个非常常见的问题:shellcode和恶意软件使用hash算法混淆加载的函数和链接库,这项技术被广泛使 ...
- js获取网页面的高度和宽度
网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth ...