作者:芳方程_269 | 来源:互联网 | 2023-06-06 14:25
1认识2库,集合操作3crud4pymongopython面向的是开源的数据库;mysqlmongdbpostgreSQLREDIS都是开源的1--Nosql什么是NoSQL?No
1 认识
2 库,集合操作
3 crud
4 pymongo
python面向的是开源的数据库;
mysql mongdb postgreSQL REDIS都是开源的
1--Nosql
NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。我们如果要对这些用户数据进行挖掘,那SQL数据库已经不适合这些应用了, NoSQL 数据库的发展却能很好的处理这些大的数据。
|--1.2mongodb 是文档型存储
一个里面有很多的数据库,mongodb数据库里面存的类型是json,键值对的格式
进入命令 mongo
退出出命令 exit
|--2 隐式创建、库操作 集合操作
2.1-mongodb中的隐式创建
show dbs; 显示所有的数据库
mongo底层引擎是Javascript
在mongodb里面空的数据库是没有意义的,use test;//切换数据库,(调用一个不存在的数据库mongdb会自动创建一个数据库),但是此时因为数据库是空的,show dbs;是看不到这个数据库的,必须给test数据库创建集合之后,再shou dbs;才能看到test数据库,这就是所谓的隐式操作
db.createCollection(‘xxx‘)
查看当前再那个数据库里面; db;
删除某个数据库,先切换到该数据库下面 use test; 再执行命令db.dropDatabase();即可删除test数据库
collection跟数据上的集合不同,
use test;
show collections; 显示集合
db.createCollection(col_name); 创建集合
db.col_nam.drop();删除集合
|--3;crud(create read update delete) 向集合中插入文档, 查询 删除文档 修改文档
db.createCollection(‘student‘)
db.student.insert({"name":"LiMing","age":10,"gender":"male"});
插入后自动生成一个id ,这个id也可以自己指定
db.student.insert({"_id":"1","name":"Anny","age":20,"gender":"femal"})
没有格式限制 插入多个数据的时候,插入的字段可以不一致,只要是json的格式就可以了
db.student.insert([ {"name":"张三","age":"20"},{"name":"李四","gender":"male"} ])
Create Operations
创建操作或者插入操作会向集合添加新的文档。之前有提到过,如果插入时集合不存在,插入操作会创建对应的集合。MongoDB 提供了 3 个插入文档的方法:
`db.collection.insert()``db.collection.insertOne()``db.collection.insertMany()`
||--插入单个文档
其中,`db.collection.insertOne()` 用于向集合插入单个文档。而 `db.collection.insertMany()` 和 `db.collection.insert()` 可以向集合插入多个文档。`db.collection.insertOne()` 示例如下:
自动命令执行后会返回一个结果文档,文档输出如下:
这说明文档插入成功。其中,`acknowledged` 代表本次操作的操作状态,状态值包括 `true` 和 `false`。`insertedId` 即该文档的 `_id`。
提示:示例中的省略号是 MongoShell 的换行标识符。换行标识符对命令输入和执行并没有影响,所以本文也不会注重风格的统一,即示例中有时会带有换行符,有时则不带有换行符。
||--插入多个文档
`db.collection.insertMany()` 示例如下:
由于本次插入了 2 个文档,所以返回的结果文档会显示两个 `_id`。返回文档内容如下:
查找删除
db.student.find(); 无条件查找,查出所有东西
按照条件查找
查找gender 是 male的,height是160的数据
db.student.find({“gender”:"male","height":160})
只显示出姓名
db.student.find({},{})