简介

mongoose是node.js的一个操作mongodb的模块,比起之前mongodb模块,只需要在开始时连接,不需要手动关闭,十分方便。

连接mongodb

首先你需要安装mongodb。
有了mongodb,你需要引入mongoose模块。

require('mongoose');

然后取连接mongodb

mongoose.connect('mongodb://localhost/myapp');//location是数据库地址,myapp为db名字
//mongoose.connect('mongodb://username:password@host:port/database?options...');

Model

要定义model首先需要定义一个schema.

var schema = new mongoose.Schema({ name: String, age: Number });
//定义model
var personModel = mongoose.model('person', schema);//person为collection名

model适合简单查询,保存,修改和删除。
保存一条新数据:

var saveobj = new persionModel({name:'小明',age:15});
saveobj.save(function(err){
    if(err){
        console.log('save error')
    }else{
        console.log('save successs');
    }
});

查询记录

var query_doc = {age:15};//查询条件
persionModel.find(query_doc,function(err,data){
    if(err){
        console.log('query error');
    }else{
        console.log(data);//此时查询结构为一个数组
    }
});

查询一条记录

var query_doc = {age:15};
personModel.findOne(query_doc,function(err,data){
    if(err){
        console.log('query one error');
    }else{
        console.log(data);//此时为一个结果对象
    }
});

修改一条数据

var update_where = {name:'李四'};//更新条件
var update_data = {age:14};//更新数据
personModel.update(update_where,{$set:update_data},function(err){
    if(err){
        console.log('update error');
    }else{
        console.log('update success');
    }
});

删除一条数据

var del_where = {name:'小明'};//删除条件
personModel.remove(del_where,function(err){
    if(err){
        console.log('delete error');
    }else{
        console.log('delete success');
    }
});

Query

query适合复杂的查询。
首先获取一个query:

var query = personModel.find({});//当不带回调时会返回一个query对象
query
    .skip(10)//跳过十行记录
    .limit(10)//查询十行记录
    .sort({_id:-1})//按id逆序排列
    .where('age').gt(17).lt(66)//age字段大于17小于66
    .exec(function(err,data){
    //回调函数,do some thing
});

简单的mongoose操作mongodb就这么多啦,更多内容可以查看手册。http://www.nodeclass.com/api/mongoose.html

mongoose 的 model,query:增删改查的更多相关文章

  1. node-express项目的搭建并通过mongoose操作MongoDB实现增删改查分页排序(四)

    最近写了一个用node来操作MongoDB完成增.删.改.查.排序.分页功能的示例,并且已经放在了服务器上地址:http://39.105.32.180:3333. Mongoose是在node.js ...

  2. 夺命雷公狗---Thinkphp----7之栏目配合Model的增删改查

    我们首先来写一个查: public function lists(){ $type = M('Type')->select(); $this -> assign('type',$type) ...

  3. Node使用Mongoose操作MongoDB数据库——增删改查的实现

    当初刚出社会时就规划了下自己的职业生涯:先成为一名优秀的前端工程师,再成为一名全栈工程师(精通前端开发.后台开发和客户端开发),最后成为一名优秀的系统架构师.转眼间已经工作快三年,是时候迈出关键性的一 ...

  4. IndexedDB 增删改查 简单的库

    <!DOCTYPE html> <html> <head> <title></title> <script src="Ind ...

  5. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  6. mongoDB (mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    MongoDB - 简介 官网:https://www.mongodb.com/ MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储 ...

  7. 手把手教你基于koa2,mongoose实现增删改查

    初始化项目 npm init -y 先安装一波乱七八糟的依赖插件(需要具备一定的koa2知识,至于mongoDB自行百度安装教程),模板引擎我使用的是art-template(据说是性能最好的,而且是 ...

  8. DjangoMTV模型之model层——ORM操作数据库(基本增删改查)

    Django的数据库相关操作 对象关系映射(英语:(Object Relational Mapping,简称ORM),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效果上说 ...

  9. 使用Mongoose类库实现简单的增删改查

    使用Mongoose类库实现简单的增删改查 Mongoose是在nodejs环境中对MongoDB数据库操作的封装,一种对象模型工具,可以将数据库中的数据转换为javascript对象供我们使用. M ...

  10. VUE2.0增删改查附编辑添加model(弹框)组件共用

    Vue实战篇(增删改查附编辑添加model(弹框)组件共用) 前言 最近一直在学习Vue,发现一份crud不错的源码 预览链接 https://taylorchen709.github.io/vue- ...

随机推荐

  1. H264编码原理以及I帧、B和P帧详解

    H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点 ...

  2. 运用 Swing

    一:Swing的组件: 组件(component,或称原件)就是你会放在GUI上的东西,这些东西用户可以看到并可以与之交互. 组件是可以嵌套的. 创建GUI的四个步骤: 1.创建window(JFra ...

  3. Wordpress基础:安装主题和插件

    一:安装主题 1.下载主题 2.解压至wordpress目录下的/wp-content/themes 3.访问后台>外观>主题启用即可 二:安装插件 1.下载插件 2.解压至wordpre ...

  4. 微信小程序(应用号)资源汇总整理

    微信小应用资源汇总整理 开源项目 WeApp - 微信小程序版的微信 wechat-weapp-redux-todos - 微信小程序集成Redux实现的Todo list wechat-weapp- ...

  5. H5唤起APP一些坑

    $(function () { function _openAppUrl(appUrl){ var ua = navigator.userAgent.toLocaleLowerCase(), open ...

  6. Lua屏蔽对象方法和恢复的方法

    背景 对于OO思想实现的类, 对于某些场景需要屏蔽某些方法, 不让调用.过了这段场景, 就恢复这些类的方法, 可以调用. 例如: 工厂具有开工方法, 但是在晚上不允许开工, 所有在晚上这段时间, 见开 ...

  7. RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍

    RDIFramework.NET ━ .NET快速信息化系统开发框架 工作流程组件介绍 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部 ...

  8. mysql dba系统学习(6)二进制日志binlog之二

    MySQL 5.5 中对于二进制日志 (binlog) 有 3 种不同的格式可选:Mixed,Statement,Row,默认格式是 Statement.总结一下这三种格式日志的优缺点.MySQL R ...

  9. LDAP的Schema

    Schema是LDAP的一个重要组成部分,类似于数据库的模式定义,LDAP的Schema定义了LDAP目录所应遵循的结构和规则,比如一个 objectclass会有哪些属性,这些属性又是什么结构等等, ...

  10. Leetcode: Circular Array Loop

    You are given an array of positive and negative integers. If a number n at an index is positive, the ...