MongoDB
1、NoSQL数据库:非关系数据库。数据的组织形式不是二维表格。Not Only SQL,表示不能使用SQL语句操作数据。适合存储超大规模、数据长度不确定的数据。数据没有规定的格式,不需要进行任何的设置就可以自有的横向扩展。
2、MongoDB:使用C++编写的,用于分布式系统的数据存储。存储数据的格式是 key:value。是众多NoSQL数据库中的一款。
数据库:database
数据表(table) <——>集合(collection)
行(row) <——> 文档(document)
3、MongoDB的数据类型:
ObjectId:类似唯一主键,长度为12个字节,通常用于生成文档的_id值
注:在MongoDB中,每个文档都有一个id属性,若用户在创建文档时没有给出 id,MongoDB会用ObjectId来为 _id生成一个值,id的值是唯一的,用来唯一标识一个文档(一条记录)
4、MongoDB的基本操作
-
//数据库的切换
-
use my_test
-
//创建集合:db.集合名.insert({_id:'1001'}) ——在向集合中插入文档时就等于创建了集合
-
db.admin.insert({
-
_id:'1005',
-
userName:'白骨精',
-
password:'123456',
-
address:'西游记'
-
})
-
db.student.insert({
-
_id:'1002'
-
})
-
//查询集合:db.集合名.find({}) ——若find不带参数表示查询所有文档
-
db.admin.find({});
-
//统计集合中文档的数量:db.集合名.find().count()
-
db.admin.find().count();
-
//更新集合中的文档:db.集合名.update(条件,新的值)
-
db.amin.update({_id:'1004',},{$set:{password:'aaaaa'}})
-
//删除属性(key):db.集合名.update({集合},{$unset:{key:value}})
-
db.admin.update({_id:'1003'},{$unset:{address:'西游记'}})
-
//增加属性 db.集合名.update(条件,新的值)
-
db.admin.update({_id:'1003'}.{$set:{hobby:['打仗','蹦迪']}})
-
//删除文档 db.集合名.remove({条件})
-
db.admin.remove({_id:'1005'})
-
db.student.find();
-
//删除集合:db.集合名.drop()
-
db.student.drop();
5、MongoDB的查询
-
//创建一个数组,保存若干对象
-
var arr = []
-
-
for(let i = 1;i<=2000;i++){
-
arr.push({
-
_id:'100'+i,
-
title:'A0'+i,
-
num:i
-
})
-
}
-
-
//将数组arr中的元素插入到集合numbers中
-
db.numbers.insert(arr);
-
db.numbers.find();
-
//查询numbers集合中num值等于500的文档(记录)
-
db.numbers.find({num:500})
-
//查询numbers集合中num值大于500的文档(记录)
-
db.numbers.find({num:{$gt:500}})
-
//查询numbers集合中num值小于500的文档(记录)
-
db.numbers.find({num:{$lt:500}})
-
//查询numbers集合中num值大于40小于50的文档(记录)
-
db.numbers.find({num:{$gt:40,$lt:50}})
-
-
//用limit设置显示数据的上限
-
db.numbers.find().limit(20); //表示最多显示20条记录
-
//分页显示:
-
db.numbers.find().skip(0).limit(10)//从索引为0的记录开始连续显示10条记录
-
db.numbers.find().skip(10).limit(10)
-
db.numbers.find().skip(20).limit(10)
-
db.numbers.find().skip(30).limit(10)
转载:https://blog.csdn.net/m0_73634593/article/details/128209351
查看评论