Node.mongoose
简介
mongodb是一款面向文档的数据库,不是关系型数据库,新手熟悉mysql、sqlserver等数据库的人可能入手稍微困难些,需要转换一下思想,可以不需要有固定的存储模式,以文档模型为存储内容相对有更好的扩展性,给我的感觉它更像是一个方便的javascript扩展单元,因为现在我所知的一些功能都可以靠js脚本实现并在数据库中执行。更多查看mongodb官网
命令
mongodb在终端中通过输入命令可查看数据库信息及操作相关数据。
1.show dbs :数据库列表
2.db :当前数据库
3.db.help()/db.xx.help() :帮助,帮助中会列出当前可执行的所有方法名称及简介。
4.网上收集的一些 mongodb基本命令
Node操作mongodb
安装mongoose
1.安装Node和mongodb数据库。
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())
接触的还不多,以后有更多的经验继续完善…