MongoDB-01学习

本文详细介绍了MongoDB的基础知识,包括其作为分布式文件存储数据库的特性,如高性能、易部署和易使用。讲解了数据库、集合、文档等核心概念,并提供了安装步骤及基本命令操作,如数据插入、查询、更新和删除。同时,文章涵盖了MongoDB的数据类型和查询方法,如正则表达式、排序和分页,是初学者快速上手MongoDB的实用教程。
摘要由CSDN通过智能技术生成

MongoDB-01学习

1.MongoDB是什么?

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在WEB应用提供可扩展的高性能数据存储解决方案。
它的特点:高性能、易部署、易使用,存储数据非常方便。

2.MongoDB术语/概念

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
table joins表连接,MongoDB不支持
primary keyprimary key主键,MongoDB自动将_id字段设置为主键

3.MongoDB数据库

一个MongoDB中可以建立多个数据库。
MongoDB的默认数据库为“db”,该数据库存储在data目录中。
MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。

4.MongoDB集合

集合就是MongoDB文档组,类似于RDBMS(关系数据库管理系统:Relational Database Management System)中的表格。
集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同的格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

5.MongoDB文档

文档是一个键值(key-value)对(即BSON)。MongoDB的文档不需要设置相同的字段,并且相同的字段不需要相容的数据类型,这与关系型数据库有很大的区别,也是MongoDB非常突出的特点。
一个简单的例子

{"genres":["犯罪","剧情"],"title":"肖申克的救赎"}

6.MongoDB数据类型

数据类型描述
String字符串。存储数据常用的数据类型。在MongoDB中,UTF-8编码的字符串才是合法的。
Integer整型数值。用于存储数值。根据你所采用的服务器,可分为32位或64位
Boolean布尔值。用于存储布尔值(真/假)
Double双精度浮点值。用于存储浮点值
Min/Max/keys将一个值与BSON(二进制的JSON)元素的最低值和最高值想对比。
Arrays用于数组或列表或多个值存为一个键
Timestamp时间戳。记录文档修改或添加时间
Object用于内嵌文档
Null用于创建空值
Symbol符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。
Date日期时间,用UNIX时间格式来存储当前日期或时间。可以指定自己的日期时间:创建Date对象传入年月日信息。
Object ID对象ID,用于创建文档的ID
Binary Data二进制数据。用于存储二进制数据
Code代码类型,用于在文档中存储JavaScript代码
Regular expression正则表达式类型,用于存储正则表达式

7.安装MongoDB

下载地址:https://www.mongodb.com/try/download/community
安装完成后,打卡命令行工具。启动服务
要么在安装目录下的bin目录下打开:mongo.exe文件,要不就配置好环境变量。执行以下语句:

mongod --dbpath d:data\d

在这里插入图片描述

以上是启动好之后的。验证:再打开一个命令 行终端。

mongo

在这里插入图片描述
出现以上,则表示安装成功,并且启动成功

8、MongoDB常用的命令

(1)数据库操作

db // 查询当前数据库
show dbs // 查询所有的数据库
use music // 创建/切换数据库
db.stats() // 显示当前DB的状态
db.version() // 查看当前DB的版本
db.getMongo() // 查看当前DB的连接机器地址
db.dropDatabase() // 删除数据库

(2)Collection集合操作

db.createCollection("collName",{size:20,capped:true,max:100); // 创建一个集合
db.collName.isCapped()  // 判断集合是否为定容量
db.getCollection("collName")  // 得到指定名称的集合
db.getCollectionNames()  // 得到当前db所有集合
db.printCollectionStats()  // 显示当前db所有集合的状态

(3)文档操作 增、山、改操作

db.collName.insert([{name:'n1',password:'123456'}]) // 插入数据
db.collName.save([{name:'n2',password:'123456'}]) // 插入数据
db.collName.find()  // 查询数据
db.collName.update({name:'n1'},{$set:{name:'n3'}}) // 修改方法
db.collName.remove({name:'m2'}) // 删除

// 查询方法
db.collName.find()   // 查询所有数据
db.collName.distinct('name')  // 查询去重后的数据
db.collName.find({"age":20})  // 查找age = 20的记录
db.collName.find({"age":{$gt:22}})  // 查询age > 22 的记录
db.collName.find({"age":{$lt:22}})  // 查询age < 22 的记录
db.collName.find({"age":{$gte:25}})   // 查询age > = 25 的记录
db.collName.find({"age":{$lte:25}})    // 查询age < = 25 的记录
db.collName.find({"name":/mongo/})    // 查询name字段中包含mongo的数据
db.collName.find({"name":/^mongo/})  // 查询name中以mongo开头的
db.collName.find({},{name:1,age:1})   // 查询指定列name、age数据 相当于 select name,age from collName
db.collName.find({age:{$gt:25}},{name:1,age:1})  // 查询指定列name、age数据,age>25,相当于select name,age from collName where age > 25
db.collName.find().sort({age:1})  // 按照年龄升序排序
db.collName.find().sort({age:-1})  // 按照年龄降序排序
db.collName.find({name:'张三',age:22}) // 查询name=张三,age=22的数据,select * from collName where name = '张三' and age = 22
db.collName.find().limit(5)  // 查询前5条数据
db.collName.find().limit(3).skip(3)  // 跳过三条取三条
db.collName.find().limit(10).skip(5)  // 查询5-10之间的数据
db.collName.find({$or:[{age:22},{age:25}]}); // or与 查询
db.collName.findOne()   // 查询第一条数据
db.collName.find({age:($gte:25}}).count()  // 查询某个结果集的记录条数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值