MongoDB的基本操作


NoSQL和MongDB

NoSQL(NoSQL = Not Only SQL ),指的是非关系型的数据库,是对不同于传统的关系型数据库的数据库管理系统的统称。
NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

MongoDB是一个基于分布式文件存储的数据库。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。


1,连接数据库:

username:password@hostname/dbname (用户名+密码+数据库名)

2,创建数据库:

show dbs  显示所有的数据列表
show tables 显示所有的集合列表
db  显示当前数据库对象或集合
use DATABASE_NAME (如果数据库不存在,则自动创建数据库,如果存在,切换到指定的数据库)

3,删除数据库:

db.dropDatabase() 删除当前数据库,默认值为test 可以使用db查看当前的数据库对象

4,创建集合:

db.createCollection(name,options)
name:要创建的集合名称
options:可选参数,指定有关内存大小及索引的选项
例:在test数据库中创建runoob集合:
	use test
	db.createCollection(“runoob”)
	不需要创建集合,插入一些文档,会自动创建集合。

5,删除集合:

db.collection.drop() 
collection:要删除的集合名称

6,插入文档:

db.collection.insert(document)
db.collection.replaceOne()
db.collection.insertMany()
db.collection.insertOne(document):向集合插入一个新文档
db.collection.insertMany(document):向集合插入多个新文档

7,更新文档:

update 方法:用于更新已存在的文档
例:更新col集合里面的title
db.col.update({‘title’:’MongoDB1’},{$set:{‘title:’MongoDB’’}})

以上语句只会修改第一条发现的语句,如果要修改全部的语句要在后面设置multi的参数为true
Save方法:传入文档来替换已有文档,_id主键存在就更新,不存在就插入。

8,删除文档

remove 方法	
db.collection.remove()
如果只想删除第一条找到的数据,可以设置justOne为1

9,查询文档

find()方法:以非结构化的方式来显示所有文档。
db.col.find()
以易读的方式来读取数据:
db.col.find().pretty()
pretty()方法以格式化的方式来显示所有的文档。
findOne()方法,只返回一个文档

在这里插入图片描述

And条件:
db.col.find({key1:value1,key2:value2}).pretty()

Or条件:
db.col.find({$or:{key1:value1},{key2:value2}}).pretty()

And和Or联合使用:
db.col.find({“age”:{$gte:20},$or:[{“by”:”西安文理”},{“title”:”信息工程”}]}).pretty()

等同于:
where age>20 and (by=”西安文理” or title= “信息工程”)

10,条件操作符:

大于:db.col.find({likes : { $gt : 100 }})
小于:db.col.find({likes : { $lt : 100 }})
大于等于:db.col.find({likes : { $gte : 100 }})
小于等于:db.col.find({likes : { $lte : 100 }})
区间:db.col.find({likes : { $gt : 100, $lt : 200}})

11,$type 操作符:

在这里插入图片描述
获取col集合中的title为String的数据:
db.col.find({“title”: { $type : 2}})或者db.col.find({“title”:{ $type : ‘String’}})

12,Limit与Skip方法:

limit()方法基本语句:
db.col.find().limit(number)
没有指定limit里的参数则显示集合中的所所有数据
skip()方法脚本语法格式:
db.col.find().limit(number).skip(number)
skip()方法来跳过指定数量的数据,同样可以接受一个数字参数作为跳过的记录条数。

13,MongoDB 排序:

sort()方法对数据进行排序,可以通过参数指定排序的字段,其中1代表升序排列,-1代表降序排列。
sort()基本语句:
bd.col.find().sort({key : 1})
skip(),limit(),sort()三个放在一起执行的时候,执行的顺序是先sort(),然后是skip(),最后是,limit()。

14,MongoDB 索引:

createIndex()方法基本语法格式:
db.col.createIndex(keys , options)
keys:要创建索引字段,1为指定按升序创建索引,-1为指定按降序创建索引。

使用多个字段创建索引:
db.col.createIndex({key1 : 1,key2 : -1})

查看集合索引:
db.col.getIndexes()

查看集合索引的大小:
bd.col.totalIndexSize()

删除集合所有的索引:
db.col.dropIndexes()

删除集合指定索引:
db.col.dropIndex(“索引名称”)

15,MongDB 聚合:

aggregate()主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。
基本语法格式:
db.col.aggregate(aggregate_operation)

在这里插入图片描述

16,管道:

$project:修改输入文档的结构,可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
$match:用于过滤数据,只输出符合条件的文档。
$limit:用来限制聚合管道返回的文档数。
$skip:在聚合管道中跳过指定数量的文档,并返回剩下的文档。
$unwind:将文档中的某一个数组类型字段拆分为多条,每条包含数组中的一个值。
$group:将集合中的文档分组,可用于统计结果。
$sort:将输入文档排序后输出。
$geoNear:输出接近某一地理位置的有序文档。**

总结

以上就是我本次整理的内容,主要是一些对MongDB的一些最基础的增删改查,这写相对来说比较简单,希望大家能够多多联系,如有错误,请及时指出!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值