MongoDB数据库的特点及命令总结

SQL: mysql,Oracle,sqlserver,db2
特点及应用场景:
1.高度事务性场景---> 银行,会计,仓库,贸易,需要大量的原子操作
2.数据存储有规范的表结构设计,预先定义好 明确的字段
3.数据价值高,对安全性和稳定性要求高
4.需要持久化存储的"冷数据"(不需要经常读写的数据)
5.需要通过SQL语言来支持的场景

NoSQL:
redis: key:value(string,list,hash,set,zset)
mondodb : {name : "小明", age : 18}
1.灵活的数据结构,需要事先设计 数据的增删改 的字段
2.高度收缩性场景,社交网络,热点资讯
3.处理热数据(需要经常读写的数据)
4.更容易扩展
每个数据库都有固定的端口:
mysql:3306, redis:6379, MongoDB:27017

========================MongoDB常用的命令
MongoDB的命令前一个单词小写,后面单词的首字母大写!!!
1.启动服务端:sudo mongod

2.启动shell客户端:mongo

3.查看所有数据库--->show dbs

4.切换数据库------>use.数据库名

5.查看当前所在的数据库---->db

6.查看当前所在数据库里面的所有集合(相当于MySQL的表)--->show collections

7.查看数据库指定集合里面的所有数据--->db.集合名.find()

8.删除当前数据库--->db.dropDatabase()

9.退出------>Ctrl+C
用户认证方式注意事项:
1. 第一次启动MongoDB是没有用户的,所以按 普通方式启动 MongoDB服务,然后再创建 root 用户。
2. 第二次启动MongoDB服务已经用户了,所以按 --auth 方式启动MongoDB服务,然后再切换用户。

==========================>使用MongoDB命令的注意点

1.在使用MongoDB命令时,如果命令是一个单词,则默认小写,
如果是多个单词组合,则第一个单词默认小写,后面单词的首字母大写,如:删除当前数据库的命令dropDatabase()

2.MongoDB命令的参数传递:一般都是以键值对的形式传递

3.一个MongoDB可以有多个数据库,一个数据库可以有多个集合,
一个集合可以有多条数据(data),每条数据都是字典键值对形式进行保存

4.MongoDB的数据库不需要提前创建,通过use 数据库名,可以直接切换使用,如果数据库里面没有数据,则不会被创建,
数据库里面有数据才会被创建

========================>MongoDB数据库的增.删.改.查.
--------------------MongoDB数据库的增加:(insert)
1.直接增加一个文档:
db.stu.insert({_id : 1, name "诸葛亮", age : 45, hometown : "蜀国"})

2.先创建一个空文档,再按照字段进行增加:
data = {}
data._id = 2
data.name = "刘备"
data.age = 48
data.hometown = "蜀国"
db.stu.insert(data)

--------------------MongoDB数据库的删除(remove)
1.remove(age:32) 默认删除符合条件的所有数据
# 删除年龄为32的所有数据
db.stu.remove({age:32})

2.remove({age:32},{justone:true}),添加第二个参数,则表示只删除满足条件的第一条数据
db.stu.remove({age:32},{justOne:true})

3.remove({}) 添加空条件,则删除所有数据

4.db.stu.drop() 删除当前数据库

--------------------MongoDB数据库的更新:(update)
1.update() 接收两个参数,第一个参数指定要更新的数据,第二个参数是更新后的参数
如果有两条数据都满足第一个参数,则只更新第一条数据
db.stu.update({age:32},{age:33}) # 表示把年纪为32的数据用年纪33来替换,_id不变,其他全部被替换

2.不做全部替换,只替换指定字段
# 通过$set修饰,只处理指定字段,有则修改,没有则增加
db.stu.update({age:32},{$set: {age:33,position:"丞相"}})

3.update()默认只处理满足条件的第一条数据,给update()添加第三个参数,处理全部满足条件的数据
db.stu.update({age:32},{$set:{age:33,hometwon:"蜀国"}},{multi:true})

--------------------MongoDB数据库的增加 + 修改:(save)
save() 根据id值进行处理:
1.如果id不存在,则增加该数据
db.stu.save({_id:4,name:"赵云",age:34,hometwon:"蜀国"})
2.如果id存在,则修改数据
db.stu.save({_id:4,name:"姜维",age:34,hometwon:"蜀国"})

insert(),update(),save()的使用区别:
insert()只能新增没有的id,如果该id值存在,则会报错
update()可以修改指定字段,而save()不能

--------------------MongoDB数据库的查询 (find())
1.find()不指定查询条件,则默认查询全部

2.findOne()只查询第一条数据

3.比较运算符(主要是数字之间的比较)
大于:$gt,大于或等于:$gte
小于:$lt,小于或等于:$lte
不等于:$ne

4.逻辑运算符 表示多个独立条件的逻辑关系
默认是and链接
db.stu.find({age:18,hometwon:"桃花岛"})
# 表示两个独立的条件逻辑关系and
db.stu.find({$and:
[{age:18},{hometown:"桃花岛"}]
})
# 表示两个独立的条件逻辑关系or或
db.stu.find({$or:[{age:18},{hometown:"桃花岛"}]})

# 范围运算符in
db.stu.find({age:{$in:[18,20,16,40,45]}})
db.stu.find({hometown:{$in:["桃花岛","大理","蒙古"]}})

正则表达式
用"//"表示通过正则表达式查询
db.stu.find({name:/^黄/})

用regex来表示正则表达式查询
db.stu.find({name:{$regex:"^黄"}})

7. 自定义函数查询
# 迭代每一个文档并判断该文档的 hometown是否不等于 蒙古,如果条件成立则符合查询
db.stu.find({$where : function() {return this.hometown != "蒙古"} })

原文地址:https://www.cnblogs.com/python58/p/9986393.html

时间: 2024-10-17 06:30:55

MongoDB数据库的特点及命令总结的相关文章

Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录(转)

文章转自:http://www.osyunwei.com/archives/8998.html 说明: 操作系统:CentOS Mongodb安装目录:/usr/local/mongodb Mongodb数据库存放目录:/home/data/mongodb/mongodb_data Mongodb日志存放目录:/home/data/mongodb/mongodb_log 实现目的: 对Mongodb数据库日志按天保存,并且只保留最近7天的日志记录. 具体操作: 使用Mongodb数据库自带的命令

CentOS6.5_X64下安装配置MongoDB数据库

环境准备: 硬件要求:50G硬盘 8G内存 4核CPU 软件要求:Linux操作系统:CentOS6.5_X64  mongodb-linux-x86_64-2.6.10.tgz 目的: 安装配置MongoDB数据库 具体操作: 一.关闭SElinux.配置防火墙 1.vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq!  #保存退出 setenfor

mongoDB数据库备份

mongodump -h dbhost -d dbname -o dbdirectory 备份mongoDB数据库 重新打开 dos命令框 mongodump -h 127.0.0.1:27017 -d test -o c:/test 备份数据库 test到 c:/test  备份的是bson格式,二进制json use test ; 进入数据库test db.dropDatabase(); 删除数据库 恢复数据库文件 mongorestore -h dbhost -d dbname -dire

【MongoDB数据库】MongoDB 命令入门初探

MongoDB是一款NoSql数据库,使用了"面向集合"(Collection-Oriented)原理,意思是数据被分组存储在数据集中,被称为一个集合(Collection).每个集合(Collection)在数据库中都有一个唯一的标识名,并且可以包含无限数目的对象(BasicDBObject). 集合(Collection)的概念类似关系型数据库(RDBMS)里的表(table),对象(BasicDBObject)的概念类似于RDBMS中表的一条数据,关系数据库里插入一条数据等价于在

孤荷凌寒自学python第五十六天通过compass客户端和mongodb shell 命令来连接远端MongoDb数据库

(完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第二天.仍然感觉付出的时间与收获完全不成正比,万事开头的时候,总是那么困难,不过今天历尽困难总算还是成功在本地连接上了远端的mongoDB数据库(就是我注册的官方的试用版本的数据库,就在官方网站服务器上.) 一.首先在官方网站为我注册的账号新建的项目[Clusters0]中添加了一个测试数据库(database),命名空间为:ghlhfirst(具体添加过程不是很复杂,但要通过文字描述又比较有难度,而且最开始要找到这个添加过

MongoDB 数据库建立,权限,角色相关命令

1) 创建自定义数据库use语法: use 数据库名实例: use goodsdb //在Shell 环境下执行 说明:如果goodsdb 数据库不存在,贝IJ新建立数据库:如果goodsdb 数据库存在, 则连接该数据库, 然后可以在该数据库上做各种命令操作. 2 )查看数据库show dbs语法: show dbs实例: show dbs //可以在任意当前数据库上执行该命令admin 0 . OOOGB //保留数据库, admingoodsdb 0 . 0 0 OGB //自定义数据库,

mongodb 数据库操作--备份 还原 导出 导入

一,mongodump备份数据库 1,常用命令格 1 mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 如果没有用户谁,可以去掉-u和-p. 如果导出本机的数据库,可以去掉-h. 如果是默认端口,可以去掉--port. 如果想导出所有数据库,可以去掉-d. 2,导出所有数据库 1 2 3 4 5 6 7 8 9 10 [[email protected] mongodb]# mongodump -h 127.0.0.1 -o /hom

MongoDB 数据库,对象,集合 MongoDB学习平台

http://www.w3cschool.cc/mongodb/mongodb-databases-documents-collections.html MongoDB 数据库,对象,集合 描述 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档.集合.数据库,下面我们挨个介绍. 数据库 一个mongodb中可以建立多个数据库. MongoDB的默认数据库为"db",该数据库存储在data目录中. 在MongoDB中可以创建数据库,如果你想使用Mongo

MongoDB数据库索引

前面的话 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录.这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的.本文将详细介绍MongoDB数据库索引 引入 索引能够提高查询效率,如何体现呢?接下来使用性能分析函数explain()来进行分析说明 首先,插入10万条数据 接着,不创建索引,来寻找time范围在100和200之间的文档 由图中所知,tot