mongodb数据库基础

mongodb是一个nosql数据库,它有高性能、无模式、文档型的特点。是nosql数据库中功能最丰富,最像关系数据库的。数据库格式为BSON

1.相关概念

  1. 实例:系统上运行的mongodb的进程,类似于mysql实例;
  2. 库:每个数据库都是独立的,有自己的用户,权限,独立存储集合,类似于mysql的库;
  3. 集合:由一组文档构成,类似于mysql的表;
  4. 文档:mongodb数据库的最小数据集,是由多个键值对有序组合的数据单元,类似于mysql的数据记录;
  5. 主键:唯一标识一行数据

2.特性

  1. 面向集合文档存储,适合存储json形式的数据;
  2. 格式自由,数据格式不固定,数据结构发生变更的同时不会影响程序运行;
  3. 面向对象的sql查询语句,基本涵盖关系型数据库的所有查询语句;
  4. 有索引的支持,查询效率更快;
  5. 支持复制和自动故障转移;
  6. 可以使用分片集群提升查询性能

应用场景:游戏、物流、社交、物联网、视频直播、大数据

3.安装

/etc/yum.conf 中更改 keepcache=1 ,yum 在成功安装或更新软件包后将保存本地缓存的软件包和相关数据

RPM安装:

  1. Cd /etc/yum.repos.d
  2. 创建mongodb源

vim mongodb.repo

写入:

[mongodb-org-4.2]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
  1. 安装 yum install -y mongodb-org

也可以使用压缩包直接安装,例如:tar -xvf mongodb.tar.gz

解压或下载后出现五个相关软件包

使用rpm命令安装

rpm -ivh mongodb-*

如此,mongodb安装完成

mongodb脚本文件:/usr/lib/systemd/system/mongod.service

Mongodb配置文件:/etc/mongod.conf

4.数据库操作

#mongodb支持tab补齐

库操作

进入mongodb数据库:执行mongo命令

查看数据库show databasesshow dbs

显示当前所在数据库:db

切换数据库:use  dbName

数据库创建:隐式创建,不用主动创建,使用use newDB,会自动创建不存在的数据库,只有在库中创建集合后才会保存,并使用show dbs查看到

删除数据库:use dbName

db.dropdatabase()

#删除数据库需要进入到要删除的数据库中,dropdatabases括号内不支持传参,即不用指定参数,默认删除当前所在数据库

文档操作

mongodb存储数字时默认是float(浮点型),若要以整数形式存储numberInt(数字)

查看集合:show tables

创建集合:db.createCollection("test")         #尽量不要用纯数字创建集合

删除集合:db.需要删除的集合名称.drop()         #括号内不传参

插入数据(文档):db.集合名称.insert({key:value}) #单行

例:

db.abc.insert({'username':'lisi','passwd':'123.com'})

db.集合名称.insertmany([{key:value},{key:value},{key:value}])         #多行,以数组的形式把每个文档放到一个属组中

例:

db.abc.insertMany([{'username':'zhangsan','passwd':'12684'},{'username':'wangwu','passwd':584125},{'username':'zhouwu','passwd':16564856}])

查询数据

全集合查询:db.集合名称.find({})

        db.集合名称.find()

例:db.abc.find({'username':'lisi'})

条件查询:db.info.find({查询条件1key:value,查询条件2,...},{key1:1|0,key2:1|0,...})

#启用或关闭某些字段的显示,查询时加入{_id:0}则不显示_id,加入{_id:1}时,显示_id

例:只显示username字段,不显示password字段 db.abc.find({'username':'lisi'},{_id:0,password:0})

只显示password字段 db.abc.find({'username':'lisi'},{_id:0,password:1})

#key:1 显示,key:0 不显示

#当显示的key只有一个时,key:1 只显示该key及对应value,key:0 显示除了该key之外其他所有keyvalue

查询集合中有多少文档:db.集合名称.count()

例:db.abc.count()

删除数据

全文删除:db.集合名称.remove({})
条件删除:db.集合名称.remove({key:value})

例:db.abc.remove({'username':'lisi'}) #删除与lisi匹配的数据

更新数据

db.info.update({_id:"3"}, {$set:{nickname:"jack"}})例:

db.abc.update({_id:ObjectId("657c26c26f356a5ad605f4dc")},{$set:{'username':'tom'}})

#_id为创建数据时自动生成的,也可以自己指定

db.info.update({userid:"1003"},{$set:{nickname:"tom"}},{multi:true})         #所有满足条件的文档都进行更新

db.info.update({userid:"1003"},{$inc:{likenum:NumberInt(1000)}})         #更新文档进行数值递增

你可能感兴趣的:(数据库,mongodb,linux,运维)