当前位置: 首页 > 后端技术 > Node.js

初试MongoDB数据库

时间:2023-04-03 11:01:29 Node.js

数据库基本概念数据库(Database)基本概念:数据库按照一定的数据结构组织,存储和管理数据断点,程序运行中的所有数据都会丢失;所以我们需要将一些程序数据持久化到键盘,以保证数据安全。数据库是大规模数据持久化的常见选择。1、文件2、数据库为什么要用数据库来存储数据:数据库是结构化的数据库,可以提供各种接口,使数据处理(增、删、改、查)变得快捷方便。该语言(PHPjsp.net..)提供了完整的接口数据库分类ROBMS(关系数据库):如MySql、sqlserverOracle等通过表建立关联的特性基本使用SQL语言来管理数据库,Nosql(非关系数据库:没有行和列的概念。使用json类存储数据集相当于“表”,文档相当于“行”。标准化和非标准化摩擦。标准化限制了创新,不规范的话无法统一特征:使用键值(KeyValue)来存储数据;MongoDB的逻辑结构是层次结构,主要由:文档(document)、集合(collection)、数据库(database)部分组成。文档:由键/值对组成,如{a:1};{s:”abc”}等,是MongoDB的核心单元。MongoDB的文档相当于关系数据库中的一行记录。集合:多个文档组成一个集合,相当于关系数据库中的一张表。数据库(database):多个集合(collection),逻辑上组织在一起,就是数据库(database)。一个MongoDB实例支持多个数据库(database)。关系数据库和非关系数据库的区别:关系数据库比较结构化,操作不是很灵活。菲律宾关系型数据库操作灵活,但不适合大规模数据存储。它们更适合微架构。两者是互补的关系型非关系型在数据库使用方面:数据模型比较简单,需要更灵活的后台系统。对数据库性能要求比较高。不需要高数据一致性。非关系型数据库主要适用于小型和微架构。DatabaseMongoDBInstallMongoDB(non-relationaldatabase):为快速开发web应用而设计的数据库系统,其设计目标是极简、灵活,常用于web应用栈的业务层。它的数据模型是面向文档的,类似于json的结构,所以这个数据库是各种各种json,并以key值的形式安装存储:下载:https://www.mongodb.com/偶数为稳定版,奇数为开发版。最好下载64位系统版本的配置环境变量:新建-->安装到bin路径,复制到环境变量,创建data->db文件夹,打开命令行,输入mongod启动DB服务器,指定端口号和路径mongod--dbpathd:datadb将MongDB设置为系统服务,datalog在bin文件mongod.cfg中创建配置文件执行命令:sc.execreateMongoDBbinPath="\"F:\MongoDB\Server\3.2\bin\mongod.exe\"--service--config=\"F:\MongoDB\Server\3.2\mongod.cfg\""DisplayName="MongoDB"start="auto"主要是为了保持运行在内存中的MongoDB参考:https://www.cnblogs.com/wzlbl...https://www.cnblogs.com/chenl...在命令行使用MongoDB插入命令MongoDB组成:数据库数据库是一个可以放置集合的仓库collections:集合类似于数组,集合中可以放置文档documents:文档是数据库中的最小单位,是我们存储和操作的文档。基本说明:showdbs显示当前所有数据库使用数据库名进入指定数据库db显示当前数据库showcollections显示数据库中所有集合使用管理员打开cmd输入mongo进入MongoDB环境进入MongoDB环境执行MongoDB命令,然后使用命令行进行增删改查(增删改查):db..insert(doc)例:插入一个新的学生对象到学校的学生集合student中数据库并添加一条数据:db.student.insert({id:"001",name:"znl",age:18,sex:"Male"})在当前集合(学校)中新建一条数据查询:db..find();例如:db.student.find();回车查询student下的所有数据,插入多条数据:db.collectionname.insert([{name:"张三",age:18,sex:"man"},{name:"张三",age:18,sex:"man"},{name:"张三",age:18,sex:"man"},{id:18,name:"张三",age:18,sex:“男人”}]);插入多条数据时,将多条语句放在一个数组中插入,可以随意插入,不拘泥于字段是否相同。当插入的字段不存在时,会自动创建。多看字段,多操作:http://www.mongodb.org.cn/man...MongoDB可视化工具[NOSQL]不过一直用命令行很麻烦,所以推荐使用NOSQL可视化工具安装可视化工具下载地址:https://www.mongodbmanager.co...使用可视化工具找到可视化工具的功能:插入(insert)语句:db.student(集合名)。插入([{id:1,name:"znl",age:18},{id:1,name:"znl",age:18},]);查询语句:db.student(集合名).find();设置条件查询:db.student。找到({“_id”:ObjectId(“5bd01c825f0d528d36a2c06f”)});查询id对应的数据db.student.find({age:18,name:"张三"});查询所有年龄为18岁,姓名为张三的人db.student.findOne({age:18,name:"张三"});查询单个符合条件的数据算子——查询有多少条数据:db.student.find().count();或db.student.find().length();返回数据总数查询符合条件的数据数:db.student.find({name:"张三"}).length();返回匹配姓名:“张三”的条目数数据库更新命令updateoriginal部分字段数据:db.student.update({"name":"张三"},{$set:{name:"刘武",年龄:45}});把匹配的名字:“张三”的数据全部更新为名字:“刘武”,年龄:45。也可以添加没有的字段,直接写进去。$set:如果有这个字段,修改,如果没有该字段,增删一个字段:db.student.update({"name":"张三"},{$unset:{age:1}});查询一条姓名:张三的数据,删除age字段修改多条记录:db.student.updateMany({"sex":"man"},{$set:{aihao:"playinggames"}});Add(modify)aihao:"playinggames"对所有匹配sex:man的句子$set:如果有如果没有修改,添加更新多条数据方法二:db.student.update({name:"张三"},{$set:{name:"WangWu"}},{multi:true});参考文档:https://docs.mongodb.com/manu...