MongoDB数据库

1.mongodb启动

​	配置环境变量  MongoDB/bin 添加到环境变量

​	通过命令来启动MongoDB

​	默认端口是: 27017

​	redis:6379

​	mysql:3306

​	mongod --dbpath="指定数据库的存放路径"
     Ubuntu启动mongodb数据库:
     sudo service mongodb start
     pgrep mongo -l
2.连接MongoDB数据库

​	通过 mongo 进行本地数据库连接
 import pymongo
client = pymongo.MongoClient('127.0.0.7', 27017)   # 本地IP,默认端口
db = client['bank']  # 进入数据库
col = db['test_set']   # 进入集合



3.MongoDB数据

​	mysql - 数据库服务 - 数据库 - 数据表 - 字段 - 数据row

​	mongodb - 数据库服务 - 数据库 - 数据表 - 字段 - 数据	

​	show databases 查看当前数据库服务, 中包含的数据库 磁盘中的数据库

​	use db name 切换当前使用的数据库, 如果数据库不存在,会在内存中创建一个新的数据库

​	db 显示当前的数据库, 指数据库的名字

​	show tables  查看当前数据库中的数据表

4.创建数据表

​	db.数据表名 在内存中创建数据表

5.只有写入数据才能将内存中的数据库和数据表永久的写入到磁盘中

​	orm.create({}) == orm.insert({})

​	增加数据:

​		db.users.insert({"name":1,"age":2})

​		数据库.数据表.指令({数据})

​	查询数据

​		db.users.find()

​		数据库.数据表.指令()

6.MongoDB数据类型和数据存储结构

​	数据存储结构:大字典

​	数据类型:

​		objectId  数据类型自增id  不限定在数据库和数据表中

​		String  字符串数据类型

​		Int        不直接使用int数字,Int32,Int4 如果不指定Int 那么存储的是Double

​		Double 双精度浮点型, 默认数字存储的数据类型 不存在float 类型

​		Array    类表数据类型 list=[]

​		Object 字典数据类型 dict = {}

7.增删改的详细操作:

​	db.数据表名.指令({})



​	增:

​	db.use.insertOne({name:2,age:18})  // 增加一条

​	db.use.insertMany([{name:1},{name:'chegan'},{name:2,age:18}]) // 增加多条

​	

​	查:

​	查询所有符合条件的数据 : db.use.find({})

​	查询符合条件的第一条数据 :db.use.findOne({name:1})  // 查询符合条件的第一项

​	db.use.find({name:2,age:18}) 并列条件 name与age 同时满足的

​	改:

​	db.use.update({name:2},{$set: {age:20}}) // 查询到符合条件的第一项修改

​	更新第一条符合条件的数据:db.stu.updateOne({age:99}, {$set:{"name":"JW8"}})

​	更新所有符合条件的数据 : db.stu.updateMany({age:99}, {$set:{"name":"JW8"}})

​	删:

​	删除符合条件的所有数据:db.use.remove({}) // 官方不推荐

​	官方推荐写法:
​        删除第一条符合条件的数据 : db.use.deleteOne({name:1})
​        删除符合条件的所有数据:db.use.deleteMany({name:1}) 
​        删除所有数据 :db.use.deleteMany({})	

8.MongoDB中的数据表,数据行,数据列
                Mysql       MongoDB
    数据表      table       Collections
    数据行      row         Documents
    数据列      字段        Field

9.高级查询:

​ 并列查询 :db.Collection.find({Field:1,Field2:2})
    或查询   :db.Collection.find({$or:[{Field:1},{Field2:3}]})
                      db.stu.find({$or:[{age:99},{ages:666}]}) 在不同字段查询或条件时使用$or
                      db.Collection.find({Field:{$in:[1,2,3,4,5]}})
                      db.stu.find({age:{$in:[9,99,999,9999,9999]}}) 在相同字段情况下查询或条件时使用 $in

​               select * from table where name=1 or age=2 or gender=3
   Array 查询 db.stu.find({"hobby":"DSB"})
​    		数学比较符 $lt $lte $gt $gte $eq $ne

​   $all : 子集查询 
    		db.stu.find({l:{$all:[8,6,4,2]}})
   Object 查询 :
   		 db.stu.find({"class.name":"python"})	

10.高级版 修改:

```
$set : 强制修改字段值 
$inc : 引用增加 db.stu.updateMany({}, {$inc: {"age":10}})
$unset: 强制删除某个Field db.stu.updateMany({}, {$unset: {"age":1}})
针对Array:
  增加操作:
    db.stu.updateOne({name:"大金"},{$push:{"hobby":"抽烟"}})
    $push == append
    db.stu.updateOne({name:"大金"},{$pushAll:{"hobby":[1,2,3]}})
    $pushAll == extend
  删除操作:
    db.stu.updateOne({name:"大金"},{$pull:{"hobby":"DSB"}})
    $pull == remove
    $pullAll == 删除每一个元素
    db.stu.updateOne({name:"大金"},{$pullAll:{"hobby":[2,3]}})
    
    $pop() 是删除列表中的第一个 (-1) 或者最后一个 (1) 
    db.stu.updateOne({name:"金角"},{$pop:{"hobby":1}})删除最后一个
    db.stu.updateOne({name:"金角"},{$pop:{"hobby":-1}})删除第一个元素
  
  更新元素 :
    db.stu.updateOne({name:"金角","hobby":2},{$set:{"hobby.$":"抽烟"}})
    db.stu.updateOne({name:"JW8","class.name":"python"},{$inc:{"class.$.score":10}})

针对Object:
    db.stu.updateOne({name:"金日"},{$unset:{"class.classtype":"bcyy"}})
    db.stu.updateOne({name:"金日"},{$set:{"class.classtype":"bcyy"}})

11. $ 关键字
    用来存储符合条件的元素下标索引
    l = [1,2,3,1,2,2,2] 哪个元素 == 2 它的下标是多少 $就等于这个下标的数字
    l[1] = "抽烟"
    l[$] = "抽烟"
    
12.limit skip sort
    limit 选取数据量
    skip 跳过数据量
    sort 根据字段进行排序
    db.stu.find().sort({ name:1 }).skip(6).limit(3)

​	
13.mongodb 数据库创建索引
db.company_datil.createIndex({"companyUniqueCode(要添加索引的名字)":1(升序,-1降序)})

db.company_datil.getIndexes()  // 查看所以韩集合
14. 按条件查询
db.scholar_node.find({ 'type': { $nin:['other','label']}}).count()

  

 

posted @ 2019-03-27 19:34  Py浪涛  阅读(344)  评论(0编辑  收藏  举报
你想听歌吗o((;=゚ 3゚ =))o~♪