MongoDB数据库的了解使用

张开发
2026/4/20 17:23:22 15 分钟阅读

分享文章

MongoDB数据库的了解使用
文章目录1. MongoDB的概述2. bson. MongoDB数据库特点4. MongoDB存储的数据类型5. Docker下使用MongoDB1. MongoDB的概述MongoDB数据库是一个跨平台面向文档的数据库。 支持的结构非常松散是类似于json的bson数据可以存储比较复杂的数据类型。 适合使用MongoDB的情况数据量大写入频繁数据的价值相对较低。2. bsonbson全称binary json是一种类json的二进制格式可以把它理解为JSON的“机器语言版”。 bson的特点 快 (遍历速度极快)BSON在每条记录前都存储了总长度解析器可以跳过不需要的字段直接定位到目标数据而JSON必须从头到尾扫描文本。 轻 (空间利用率高)虽然BSON会额外存储一些元数据如长度、类型但它使用紧凑的二进制编码且支持整数、日期、原生浮点数等JSON不支持的类型避免了JSON中数字转字符串带来的空间浪费。 强 (数据类型更丰富)JSON只支持字符串、数字、布尔、数组、对象、null这6种基础类型。BSON在此基础上增加了日期类型 (Date)、整数类型 (Int32, Int64)、字节数组 (BinData) - 用于存储图片、文件等二进制数据、正则表达式、时间戳、JavaScript代码 等。. MongoDB数据库特点1面向文档的 NoSQL 数据库数据存储是bson而不是表格每个文档是一个完整的对象。 2灵活模式同一个集合Collection中的文档可以有不同的字段结构不需要预先定义表结构。 3高可扩展性原生支持水平扩展分片可以轻松将数据分布到成百上千台服务器上。 4高性能适合高并发读写尤其是写操作通过索引、内存映射等机制优化。 5丰富的查询语言支持等值查询、范围查询、聚合管道、文本搜索、地理位置查询等。 6索引支持支持单字段、复合、多键数组、文本、地理空间等多种索引。 7高可用性通过副本集Replica Set自动故障转移保证数据不丢失。4. MongoDB存储的数据类型1null 2布尔 3数值默认是64位的浮点(Double)如果想存整数可以使用NumberInt(4字节)NumberLong(16字节)。 4字符串 5日期 6正则表达式 7数组 8内嵌文档 9对象ID 10二进制数据 11代码片段5. Docker下使用MongoDB1) 默认端口27017 2登录mogo 192.182.2.144 进去以后是test数据库 3退出exit 4启动 docker run -di --namemymongodb -p 27017:27017 mongo11 【mongo11是image的id根据实际情况修改】 5创建并使用数据库 use mongo1 【如果有直接使用如果没有先创建再用】 6插入一条数据 db.article.insert({_id:111,name:张三,count:NumberLong(222)}) ; 注_id 是默认id如果没有赋值默认是一个24位的随机数如果手动赋值了就是我们手动赋的值。 7查询所有db.article.find(); 8修改/更新db.article.update({_id:111},{$set:{name:更新后的名称,count:NumberInt(20)}}); 9) 查询总记录数db.article.count(); 10) 条件查询db.article.find({id:111}); 11) 模糊查询 1. 查询包含李的db.article.find({name:/李/}) ; 2. 查询李开头的db.article.find({name/^李/}); 12条件查询 大于$gt 小于$lt 大于等于$gte 小于等于 $lte 不等于$ne 包含$in 不包含$nin 并且$and 或者$or 查询访问量大于3000的db.article.find({count:{$gt:NumberLong(3000)}}); 查询type类型等于1并且name包含李的db.article.find({$and:[{type:1},{name:/李/}]}); 查询访问量大于1000或者type类型是1同时name包含李的db.article.find({$and:[{$or:[{tyoe:1},{count:{$gt:NumberLong(1000)}}]},{name:/李/}]}); 13列值自动增长$inc 让id是111的count每次自增100db.article.update:({id:111},{$inc:{count:NumberInt(100)}});

更多文章