MongoDB
MongoDB 是一个基于分布式文件存储的数据库,是一个介于关系数据库和非关系数据库之间的产品.
主要特点
- 面向文档存储,文档是一组键值(key-value)对(即BSON)Binary JSON
- MongoDB中可以为数据设置索引,以提高查询和排序的速度
- Mongo支持丰富的查询表达式
- MongoDB支持各种编程语言
- MongoDB安装简单
MongoDB和mysql概念对比
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
mongoDB命令
“show dbs”命令可以显示所有数据的列表====同show databases
“db”查看当前所载数据库
“use”命令,可以连接到一个指定的数据库,若不存在则创建
mongoDB插入文档
1 | ==================================insert======================================= |
MongoDB 更新文档
db.集合名.update(条件,修改值,{upsert:xxx, multi:xxx})
- upsert : 可选,找不到指定的数据,true为插入,默认是false,不插入。
- multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,全部更新
1 | 实例: |
MongoDB 删除文档
1 | db.集合名.remove(条件) 删除所有符合条件的 |
MongoDB 查询文档
①db.集合名.find() 查询所有数据
②db.集合.find(条件) 条件查询 db.col.find({“likes”:{$gt:50}})
| 操作 | 格式 |
| :——–: | :———————-: |
| 等于 | {<key>:<value>
} |
| 小于 | {<key>:{$lt:<value>}}
|
| 小于或等于 | {<key>:{$lte:<value>}}
|
| 大于 | {<key>:{$gt:<value>}}
|
| 大于或等于 | {<key>:{$gte:<value>}}
|
| 不等于 | {<key>:{$ne:<value>}}
|
③MongoDB AND 条件 以逗号隔开 db.col.find({key1:value1, key2:value2})
④MongoDB OR 条件 db.col.find({$or:[{“by”:”菜鸟教程”},{“title”: “MongoDB 教程”}]})
⑤AND 和 OR 联合使用 db.col.find({“likes”: {$gt:50},$or: [{“by”: “菜鸟教程”},{“title”: “MongoDB 教程”}]})
⑥显示指定字段 find({},{‘_id’:1,’name’:1} 1代表显示 0代表不显示 _id默认一直显示,为0才不显示
⑦limit约束 db.集合名.find().limit(数字) 约束显示个数(分页)
⑧sort排序 db.集合名.find().sort({‘排序的键’:1}) 1代表升序 ,-1代表降序
⑨ Skip() db.集合名.find().limit(数字).skip(数字) 跳过前几个去取
⑩aggregate() db.mycol.aggregate([{$group : {_id : “$by_user”, num_tutorial : {$sum : 1}}}]) 按照指定字段分组 然后计算对应数据,_id是固定的
| 表达式 | 描述 |
| :—-: | :——————————–: |
| $sum | 计算总和。 |
| $avg | 计算平均值 |
| $min | 获取集合中所有文档对应值得最小值。 |
| $max | 获取集合中所有文档对应值得最大值。 |
python访问mongoDB
1 | client = pymongo.MongoClient('127.0.0.1', 27017) |
1 | 注意在使用ObjectId()方法时需要在python中导入包 |