Mongoose认知概念

Mongoose是MongoDB的一个对象模型工具,其可以在一部环境下执行。同时它也是针对MongoDB操作的一个队形模型库,封装了MongoDB对文档的一些增删改查等常用方法,让NodeJS操作MongoDB数据库变得更加灵活简单。

Mongoose的使用

安装

npm install mongoose

数据库链接

好吧,为了防止说起来比较不太好说,萍子在这里先推销一波,前两天我写过一篇MongoDB在终端上操作的博文,需要的可以点击下面这个链接MongoDB数据库操作—终端命令操作,然后需要说明的是因为终端操作和mongoose的操作差距不大,在这篇博文中,我就不再很详细的介绍了,望见谅,小伙伴们需要的如果这篇博文找不到的,可以去那篇去看看,谢谢。
好了,接下来开始今天的内容,惯例上代码配解释:

//引入mongoose模板
var mongoose = require("mongoose");
//链接数据库:其中27017是mongodb的端口号,user是要操作的数据库的名字,在上篇博文中的截图中有体现哦
mongoose.connect("mongodb://localhost:27017/user");
var db = mongoose.connection;
//链接失败
db.on("error",function(error){if(error){console.log(error);}
})
//链接成功
db.on("open",function(){console.log("数据库链接成功");
})

哈哈,如果你操作到了以上这一步,就说明数据库已经连接成功了哦,接下来我们再来看一点配置。

设定数据库的基本架构

原因:就像我们在上一篇博文提到的那样,MongoDB数据库结构比较灵活,因此我们可以提前设定好数据库的架构,防止内部紊乱,不利于存取。
设定架构又称为定义数据库集合的数据模型,定义了字段名和字段的类型以及默认值等等。
其中,字段的类型有:字符串、日期型、数值型、布尔型、null、数组、内嵌文档等。

var Schema = mongoose.Schema({name:{type:String},//定义的字段和字段类型age:{type:Number,default:22},//default是默认值的设置,可选
},{collection:"mytest"//操作的是数据库里的集合名称
})
//model是用Schema构造生成的模型,除了Schema定义的数据库骨架外,还具有数据库操作的行为,类似于管理数据库属性、行为的类
//参数:集合名称,集合数据模型
var Model = db.model("mytest",Schema);

数据库操作

这里需要说明的是,mongoose的操作和命令行的操作大同小异,这里我就不再过多的赘述,把方法等写在这里,如果不晓得怎么用的小伙伴们可以去看一眼上篇博文,[MongoDB数据库操作—终端命令操作],谢谢大家。

增加数据

在终端命令行里的添加用的是insert关键字,在这里我们用的是create关键字

Model.create({name:"河神",age:23},function(err,data){if(err){return console.log(err);}else{console.log(data);//返回添加数据,会自动生成一个__v,用来标识是create添加的}
})

删除数据

删除的关键字跟终端操作用到的一样,都是remove

Model.remove({name:"萍子"},function(err,data){if(err){console.log(err);}else{console.log(data);//返回结果跟终端一样}
})

修改数据

更改数据的关键字在这里也还是update

Model.update({name:"萍子"},{$set:{age:18}},{multi:true},function(err,data){if(err){console.log(err);}else{console.log(data);//返回结果跟终端一样}
})

查询数据

同样的查询用的也还是find,但是不变的还有我的吐槽:哎呀妈呀,这个数据库的查询操作真的是超级多的情况,汗颜汗颜……
下面我大致列出来几种,然后一一备注出来供小伙伴们参考

find({条件},{字段},fun)
//取所有的
Model.find({},{},function(err,data){if(err){console.log(err);}else{console.log(data);}
})//查询年龄小于28的,且只查询名字
Model.find({age:{$lt:28}},{name:1},function(err,data){if(err){console.log(err);}else{console.log(data);}
})//年龄大于25的
Model.find({age:{$gt:25}},null).then((data) => {console.log(data);
}).catch((err) => {console.log(err);
})//姓王的或者姓李的
Model.find({$or:[{name:/^王/},{name:/^李/}]}).then((data)=>{console.log(data);
}).catch((err)=>{console.log(err);
})//分页/游标操作:
//按年龄降序排列
Model.find({},{},{sort:{age:-1}},function(err,data){if(err){console.log(err);}else{console.log(data);//返回符合的数据内容}
})
//另一种写法:
Model.find().sort({age:-1}).then(function(data){console.log(data);
}).catch(function(err){console.log(err);
})//排序查询:按年龄倒序排列,跳过前两条查询两条数据
Model.find({},{},{sort:{age:-1},skip:2,limit:2},function(err,data){if(err){console.log(err);}else{console.log(data);}
})

好了,呼呼,mongoose的对MongoDB的操作大致也就这些,拜拜咯,加油加油!!!

MongoDB数据库操作---mongoose操作相关推荐

  1. nodejs操作mongodb数据库(mongoose)

    准备 在上一篇的基础上,通过npm安装mongoose. 关于mongoose Mongoose是MongoDB的一个对象模型工具,是基于node-mongodb-native开发的MongoDB n ...

  2. 二、mongodb数据库系列——聚合操作 索引操作 权限管理

    一.mongodb的聚合操作 学习目标 了解 mongodb的聚合原理 掌握 mongdb的管道命令 掌握 mongdb的表达式 1 mongodb的聚合是什么 聚合(aggregate)是基于数据处 ...

  3. Python使用pymongo连接MongoDB数据库并进行操作

    一.基本概述 目前电脑上已经下载了MongoDB数据库.navicat for mongodb作为mongoDB的可视化工具,形如navicat for mysql作为mysql的可视化工具. 使用P ...

  4. 用python向mongodb插入数据_Python操作MongoDB数据库(一)

    Python操作MongoDB数据库(一) 前言 干货文章继续出发!隔的时间有些久了哈,对 MongoDB 安装回顾的同学,可以看下windows环境 <初识 MongoDB 数据库>.这 ...

  5. 使用mongoose 在 Node中操作MongoDB数据库

    MongoDB 关系型和非关系型数据库 关系型数据库(表就是关系,或者说表与表之间存在关系). 所有的关系型数据库都需要通过sql语言来操作 所有的关系型数据库在操作之前都需要设计表结构 而且数据表还 ...

  6. 使用第三方包mongoose来操作MongoDB数据库,解决报错:MongooseError

    使用第三方包mongoose来操作MongoDB数据库 官方网站 配置文件 异常 异常描述: MongooseError: Operation cats.insertOne() buffering t ...

  7. 58 Node.js中操作mongoDB数据库

    技术交流 QQ 群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder 的程序人生 1.数据库概述及环境搭建 1.1 为什么要使用数据库 动态网站中的数据都是存储在数据 ...

  8. mongoose操作mongodb

    http://mongoosejs.com/docs/api.html#index-js mongoose是nodejs环境下操作mongodb的模块封装,使用mongoose之后,实际上只需要在mo ...

  9. MongoDB数据库操作---终端操作

    初识MongoDB 概念: 特点 相关安装 我这边用的是MAC版本 在使用mongodb之前,我们需要给它配置一个macOS缺失的软件包管理器,叫做HomeBrew,链接是:HomeBrew 对应的, ...

最新文章

  1. mysql 主键选择_mysql – 无论列名如何,都选择主键?
  2. 智能车竞赛技术报告 | 智能车视觉 - 温州大学- 春华秋实
  3. 分布式图处理引擎Graph Engine 1.0 预览版正式发布
  4. 命令行以及git基础使用
  5. CSDN专访云信阙杭宁:以16年技术积累打造稳定IM云服务
  6. 芦溪中学2021高考成绩查询,三台县芦溪中学2021年招生简章
  7. (数据库系统概论|王珊)第九章关系查询与关系优化:习题
  8. Tunnelling HTTP Traffic Through XSS Channels.pdf
  9. python批量提取哔哩哔哩bilibili视频
  10. 转:POJ先做完这50题再说
  11. 详解:MapReduce 思想解析
  12. [转载] lstm时间序列预测_pytorch入门使用PyTorch进行LSTM时间序列预测
  13. java和php基础部分相同或异同
  14. php循环5000条会不会崩,PHP -- 循环
  15. 亲民地理-第39期-佛山(2)南风古灶_我是亲民_新浪博客
  16. Photoshop定义画笔选区为空的原因
  17. 海马苹果助手ipad版_不惧掉签 | 苹果IPA安装包,免费自签教程
  18. 《剑指Offer》题解与笔记(Java实现)
  19. 盘点波卡生态潜力项目 | 跨链特性促进多赛道繁荣
  20. 在线教育业务笔记03

热门文章

  1. 谈谈Objective-C的警告 (转)
  2. 2151: 种树 - BZOJ
  3. 数学趣题——求圆周率的近似值
  4. 开源能带来什么?听听入选2021胡润U30创业领袖榜单的90后怎么说
  5. 资源放送丨《Oracle存储过程性能分析案例》PPT视频
  6. 《Oracle RAC 高并发系统的故障诊断》直播资料大放送
  7. 链家大数据多维分析引擎实践
  8. 低代码实现传统装饰企业的管理跃迁
  9. 从中心到边缘,IoT正变为互联网之上的一张大网
  10. 数仓安全:用Alter default privilege解决共享schema权限