【db】mongodb的故事
程序员文章站
2022-05-18 21:01:23
...
带着问题去学习?
终极目标,爬取b站里面粉丝在1万以上的用户,统计这些用户的起名规律
mongodb怎么进行翻页操作?
mongodb如何进行数据分析?
数据分析的关键是聚合查询
mongodb可以只取出某一个字段吗?
看一看下面四个服务有什么相同点和区别?
mysql,mongodb,redis,elasticsearch
名字 | 特点 |
---|---|
mysql | 关系型数据库 行和列 |
redis | 缓存数据库,键值对 |
elasticsearch | 可以做搜索引擎 |
mongodb |
这几个数据库,对于使用者来说,其实都是黑盒的,但是不同的数据库特点不一样,使用方法也不同,不同的场景下各有千秋。
mongodb的数据分析能力不如mysql
入门
安装
通过官网下载tar文件
启动
sudo ./mongod
启动mongodb服务
客户端
python客户端pip3 install pymongo
shell客户端./mongo
gui客户端
数据结构
文档
JSON格式
概念
dbs,切换数据库
collections,查看collections
document
CURD
insert data into mongodb(插入数据)
db.foo.insertOne(
{ "item" : "canvas",
"qty" : 100,
"tags" : ["cotton"],
"size" : { "h" : 28, "w" : 35.5, "uom" : "cm" }
}
)
read data from mongodb(读取数据)
注意:mongodb读取数据返回了一个游标
myCursor = db.foo.find( {} )
while (myCursor.hasNext()) {
print(tojson(myCursor.next()));
}
read data from mongodb with queries(查询)
Read Data using Operators and Compound Queries
myCursor = db.inventory.find( { "size.h": { $lt: 15 } } )
Update Data in MongoDB
1.修改一个
{ "item" : "paper" }, // specifies the document to update
{
$set: { "size.uom" : "cm", "status" : "P" },
$currentDate: { "lastModified": true }
}
)
- 修改多个
db.inventory.updateMany(
{ "qty" : { $lt: 50 } }, // specifies the documents to update
{
$set: { "size.uom" : "cm", "status": "P" },
$currentDate : { "lastModified": true }
}
)
delete data from MongoDB
- 删除一个document
db.inventory.deleteOne(
{ "status": "D" } // specifies the document to delete
)
- 删除多个document
db.inventory.deleteMany(
{ "status" : "A" } // specifies the documents to delete
)
mongodb状态查看
例如我想查看db存储大小
例如我想查看collection的存储大小
也就是说百万行存储大小在22M做左右。为什么存储大小比数据大小要小很多?