nosql数据库-mongodb

1 认识

2 库,集合操作

3 crud

4 pymongo

python面向的是开源的数据库;

mysql mongdb postgreSQL REDIS都是开源的

1--Nosql

什么是NoSQL?

NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

为什么使用NoSQL ?

今天我们可以通过第三方平台(如: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({},{})

猜你喜欢

转载自www.cnblogs.com/wsnan/p/11792644.html
今日推荐