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 全栈开发 零.序言 ...
随机推荐
- okhttp post form表单
OkHttpClient okHttpClient = new OkHttpClient.Builder().build(); FormBody formBody = new FormBody.Bui ...
- MySQL语句_积累
1.GROUP_CONCAT 直接返回拼接好的多个结果,可以供IN()函数使用 语句 结果 +-----------------------------------------+ | GROUP_CO ...
- FastDFS + Nginx代理方式访问
FastDFS + Nginx代理方式访问 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.在storage上安装nginx 1>.下载nginx软件(http://ngi ...
- MyBatis-resultType 几种返回类型
一.返回集合 1.返回JavaBean集合 public List<MyUser> selectMyUserByNameLike(String name); <!-- resultT ...
- 异常来自 HRESULT:0x80070057 (E_INVALIDARG)(转)
莫名其妙的编译总会报错 异常来自 HRESULT:0x80070057 (E_INVALIDARG) 未能加载程序集....... 几次删除引用然后重新引用程序集还是报错 奔溃中.... 网上搜索还真 ...
- CSS常用选择器的认识
---恢复内容开始--- 前言:在CSS中选择器的种类有很多很多,但是在实际的工作中,我们经常会用到的分为两大类:基础选择器和复合选择器这两个大类,学习选择器的目的就是为了在复杂的页面中能够快速定位到 ...
- Linux学习笔记:【002】ARM指令流水线
指令的处理 在CPU中,对于指令的处理一般分为: 1.取指令阶段 取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程. 程序计数器PC中的数值,用来指示当前 ...
- Nginx 学习笔记(六)引入线程池 性能提升9倍
原文地址:https://www.cnblogs.com/shitoufengkuang/p/4910333.html 一.前言 1.Nignx版本:1.7.11 以上 2.NGINX采用了异步.事件 ...
- Kettle系列:使用Kudu API插入数据到Kudu中
本文详细介绍了在Kettle中使用 Kudu API将数据写入Kudu中, 从本文可以学习到:1. 如何编写一个简单的 Kettle 的 Used defined Java class.2. 如何读取 ...
- JS创建对象之稳妥构造函数模式
所谓稳妥对象,指的是没有公共属性,而且其方法也不引用this的对象 function Person(name, age, job) { // 创建要返回的对象 var o = new Object() ...