mongoose学习笔记1--基础知识1
今天我们将学习Mongoose,什么是Mongoose呢,它于MongoDB又是什么关系呢,它可以用来做什么呢?
MongoDB是一个开源的NoSQL数据库,相比MySQL那样的关系型数据库,它更显得轻巧、灵活,非常适合在数据规模很大、事务性不强的场合下使用。同时它也是一个对象数据库,没有表、行等概念,也没有固定的模式和结构,所有的数据以文档的形式存储(文档,就是一个关联数组式的对象,它的内部由属性组成,一个属性对应的值可能是一个数、字符串、日期、数组,甚至是一个嵌套的文档。),数据格式就是JSON。
介绍了MongoDB,我们下面就要认识Mongoose了。
1. Mongoose是什么?
Mongoose是MongoDB的一个对象模型工具,是基于node-mongodb-native开发的MongoDB nodejs驱动,可以在异步的环境下执行。同时它也是针对MongoDB操作的一个对象模型库,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单。
2. Mongoose能做什么?
Mongoose,因为封装了对MongoDB对文档操作的常用处理方法,让NodeJS操作Mongodb数据库变得easy、easy、So easy!
学习了上面的介绍,相信你已经对Mongoose有了初步的认识和了解,千里之行,始于足下,奔跑吧,少年!
MongoDB是一个对象数据库,是用来存储数据的;
Mongoose是封装了MongoDB操作的一个对象模型库,是用来操作这些数据的。
好,下面我们就来进行操作数据的第一步吧。
1. 安装mongoose:
1 | npm install mongoose |
2. 引用mongoose:
var mongoose = require("mongoose");
3. 使用"mongoose"连接数据库:
1 | var db = mongoose.connect( "mongodb://user:pass@localhost:port/database" ); |
注:var db = mongoose.connect("mongodb://127.0.0.1:27017/test"); //这样的形式,我们要链接到mongodb数据库的默认端口127.0.0.1:27017上,test是集合名;
4. 执行下面代码检查默认数据库test,是否可以正常连接成功?
eg:练习
打开数据库,创建app.js,输入以下代码;
在node中运行node app;
1 2 3 4 5 6 7 8 | var mongoose = require( "mongoose" ); var db = mongoose.connect( "mongodb://127.0.0.1:27017/test" ); db.connection.on( "error" , function (error) { console.log( "数据库连接失败:" + error); }); db.connection.on( "open" , function () { console.log( "------数据库连接成功!------" ); }); |
了解集合
首先,我们再次简单介绍一下MongoDB数据库。
MongoDB —— 是一个对象数据库,没有表、行等概念,也没有固定的模式和结构,所有的数据以Document(以下简称文档)的形式存储(Document,就是一个关联数组式的对象,它的内部由属性组成,一个属性对应的值可能是一个数、字符串、日期、数组,甚至是一个嵌套的文档。),后面我们会学习如何创建文档并插入内容。
在MongoDB中,多个Document可以组成Collection(以下简称集合),多个集合又可以组成数据库。
我们想要操作MongoDB数据,那就得先要具备上面所说的包含数据的“文档”,文档又是什么意思呢,请看如下介绍。
文档 —— 是MongoDB的核心概念,是键值对的一个有序集,在JavaScript里文档被表示成对象。同时它也是MongoDB中数据的基本单元,非常类似于关系型数据库管理系统中的行,但更具表现力。
集合 —— 由一组文档组成,如果将MongoDB中的一个文档比喻成关系型数据库中的一行,那么一个集合就相当于一张表。
如果我们要通过Mongoose去创建一个“集合”并对其进行增删改查,该怎么实现呢,到这里我们就要先了解Schema(数据属性模型)、Model、Entity了!
作者:水车
出处:https://www.cnblogs.com/shuiche/p/4603551.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
本博文版权归本博主所有,未经授权不得转载
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· [翻译] 为什么 Tracebit 用 C# 开发
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· 刚刚!百度搜索“换脑”引爆AI圈,正式接入DeepSeek R1满血版