简介

mongodb是一款面向文档的数据库,不是关系型数据库,新手熟悉mysql、sqlserver等数据库的人可能入手稍微困难些,需要转换一下思想,可以不需要有固定的存储模式,以文档模型为存储内容相对有更好的扩展性,给我的感觉它更像是一个方便的javascript扩展单元,因为现在我所知的一些功能都可以靠js脚本实现并在数据库中执行。更多查看mongodb官网

命令

mongodb在终端中通过输入命令可查看数据库信息及操作相关数据。
1.show dbs :数据库列表
2.db :当前数据库
3.db.help()/db.xx.help() :帮助,帮助中会列出当前可执行的所有方法名称及简介。
4.网上收集的一些 mongodb基本命令

Node操作mongodb

安装mongoose

1.安装Nodemongodb数据库
2.打开命令行 执行 npm 命令:

npm install mongoose -g 

连接数据库

//获取mongoose模块
var mongoose = require('mongoose');
///获取本地mongodb连接
//connect和createConnection都接受mongodb数据库连接,支持URI或者参数(host,database,port)的形式。
var conn = mongoose.connect('mongodb://localhost/数据库名称');

定义模型

//定义User模型 类似于MVC中的Model
var 模型 = new Schema({
字段名称 : { type: 类型 }
//...
});
mongoose.model(模型名称, 模型);

访问模型

//这里的模型为数据库直接操作的对象
var mongoSchema = mongoose.model(模型名称); 

CRUD

1.添加新数据

//实例化数据模型
var schermaName = new mongoSchema();
//为模型成员赋值
schermaName.字段 = 值;
//...
//执行保存操作
schermaName.save(function(err){
if (err) {
console.log(err);
}
console.log('save success');
});

2.查找

//查找数据
//单条查找使用findone() 返回查找结果集中的第一条数据
schermaName.find({key:value},function(err,docs){
console.log(docs);
});

3.修改数据

schermaName.update(定位数据:{key:value},更改值);

4.删除数据

schermaName.remove(定位数据:{key:value},function(err,docs){
console.log(docs);
});

注意事项

mongoose在与数据库真正建立连接之前便缓存了所有的命令,这就意味着你在定义模型、执行查询时确认与mongodb数据库的连接状态或重新打开数据库连接会抛出异常。

常见异常处理

1.Error: Trying to open unclosed connection.
尝试打开一个没有关闭的数据库连接。(来源:db.open())

接触的还不多,以后有更多的经验继续完善…

Node.mongoose的更多相关文章

  1. vue+node+mongoose踩过的坑

    1.当你在cmd中输入npm run dev的时候,出现这种错误 很有可能是目前的端口被占用了,可以把所有可能用到这个端口号的应用关闭或者你直接改一个新的端口号 修改端口的方法:新打开一个cmd,然后 ...

  2. node+mongoose使用例子

    https://github.com/Aquarius1993/nodeNotes 功能 1. 注册 2. 登录 3. 修改密码 4. 修改头像 5. 获取用户笔记 6. 添加,删除,更新笔记 安装部 ...

  3. node+mongoose+vue

    app.js 入门 let express = require('express'); let app = express(); let allowCrossDomain = function (re ...

  4. mongoose的promise(转发)

    Switching out callbacks with promises in Mongoose Published on July 28, 2015 mongo node mongoose pro ...

  5. node.js学习的资源整理

    node中文社区 Node.js专业中文社区:https://cnodejs.org/ node文档 node.js 中文api :http://nodeapi.ucdok.com/ node.js入 ...

  6. [Mongo] 解决mongoose不支持条件操作符 $gt$gte:$lte$ne $in $all $not

    reference : http://blog.sina.com.cn/s/blog_4df23d840100u25x.html 找到mongoose的安装目录 /usr/local/lib/node ...

  7. MongoDB 驱动以及分布式集群读取优先级设置

    本文主要介绍使用MongoDB C驱动读取分布式MongoDB集群时遇到的坑,主要在读取优先级和匹配tag上:同时简单介绍Python驱动.Node.js驱动.Mongoose驱动如何使用读取优先级和 ...

  8. nodejs mongodb 查询要看的文章

    http://www.cnblogs.com/refactor/archive/2012/07/30/2591344.html 数组很大多数情况下可以这样理解:每一个元素都是整个键的值. db.use ...

  9. vue的项目初始化

    1.创建文件 blog 2.下载安装node mongoose 3.(1)vue创建后端项目文件 vue create admin (2)vue创建前端项目文件 vue create web (3)新 ...

随机推荐

  1. c++ 文件读写(转)

    C/C++ code //创建一个文本文件并写入信息 //同向屏幕上输出信息一样将信息输出至文件 #include<iomanip.h> #include<fstream.h> ...

  2. C++中虚函数功能的实现机制

    要理解C++中虚函数是如何工作的,需要回答四个问题. 1.  什么是虚函数. 虚函数由于必须是在类中声明的函数,因此又称为虚方法.所有以virtual修饰符开始的成员函数都成为虚方法.此时注意是vir ...

  3. 利用for循环求1-100之间的奇数和 and 0-100的偶数和

    为了方便自己计算,以下代码只求1-10的奇数和 and 0-10的偶数和 1-10的奇数从1开始分别为1.3.5.7.9 代码如下 /* Name:循环语句得出奇数.偶数并相加求和 Copyright ...

  4. .NET 条件查询实现--类似网上商城宝贝搜索

    需要实现的效果:点击表格列头:弹出一个层,用户可以输入当前列头的查询条件,点击确定之后,把该列头的查询信息显示在页面顶部,用户可以叉掉这个查询条件,恢复到查询之前的数据. 大致实现的效果图: 项目背景 ...

  5. vcredist作用

    一.vcredist作用: vcredist_x86.exe是微软公司Visual C++的32位运行时库,包含了一些Visual C++的库函数. vcredist_x64.exe是微软公司Visu ...

  6. php 前端获取数据

    <pre name="code" class="python"><!doctype html> <html lang=" ...

  7. HDU 4366 Successor(树链剖分+zkw线段树+扫描线)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=4366 [题目大意] 有一个公司,每个员工都有一个上司,所有的人呈树状关系,现在给出每个人的忠诚值和 ...

  8. spring 资源加载使用说明

    Spring 提供了一个强大加载资源的机制,不但能够通过“classpath:”.“file:” 等资源地址前缀识别不同的资源类型,还支持Ant 风格带通配符的资源地址. 首先,我们来了解一下Spri ...

  9. C标准中一些预定义的宏

    C标准中指定了一些预定义的宏,对于编程经常会用到.下面这个表中就是一些常常用到的预定义宏. 宏(双下滑线) 意义 __DATE__ 进行预处理的日期(“Mmm dd yyyy”形式的字符串文字) __ ...

  10. iOS面试题02-数据存储

    1.如果后期需要增加数据库中的字段怎么实现,如果不使用CoreData呢? 回答:编写SQL语句来操作原来表中的字段 1>增加表字段 ALETER TABLE 表名 ADD COLUMN 字段名 ...