MongoDB数据库

 MySQL:当数据库结构已经确定,只对数据内容修改

MongoDB:需要对数据表结构进行修改的时候(多变)

命令:

dbs:显示所有的数据库

db:显示当前使用的数据库

use 数据库名:切换数据库并自动创建

db.stu.insert ( { name:'蒋欢' , age:15 } ):创建一个表stu并插入数据

什么是MongoDB?

        

MongoDB的结构

和MySQL语法的对比

 1.数据库(DataBase)


数据库表示一个集合的物理容器。通常情况下,一个MongoDB中可以建立多个数据库,默认的数据库为“test",它存储在data目 录中。通过使用如下命令,可以显示所有的数据库列表。
Q

show dbs

显示所有数据库的示例如下。

> show dbs
admin  0.000GB
local  0.000GB
test   0.000GB


通过使用“db”命令,可以显示当前数据库对象或者集合,示例代码如下。
 

>db
test


2.文档(Document)

文档是一组由键/值对组成的对象,对应着关系型数据库的行。文档的示例代码如下。
{"tame": "Jane", "age": 30}
值得一提的是,文档中的键/值对是有顺序的。文档中的值不仅可以是字符串类型,而且可以是其它数据类型。
每个文档中都有一一个属性,名称为_jd, 用于保证文档的唯一性。 在进行插入文档操作时,可以自行设置jid的值。如果没有提供,那么MongoDB会为每个文档设置-个独特的id, 类型为objectID。
objectID是一一个12个字节的十六进制数。其中,前4个字表示当前的时间戳,后面跟着3个字节的机器ID,接着是2个字节的服务进程id,最后面是3个字节的简单增量值。


3.集合(Collection)


集合就是一组文档,类似于关系数据库中的表,它没有固定的结构,这意味着可以往集合中插入不同格式和
类型的数据,示例代码如下。

{"name": "Jay", "gender": "man"}
{"name": "Jay", "age": 30}


 


什么是PyMongo?

 

# -*- coding:utf-8 -*-
#导入pymongo相关类
from pymongo import *
#1.建立和MongoDB服务器的连接
#标准格式(如果不是本地)
# client =MongoClient('127.0.0.1',27017)
#如果要连接的默认端口是本地MongoDB,那么ip和端口号都是可以省略的
client =MongoClient()
# print(client)
#2.获取数据库连接对象(如果有集合对象就获取,没有会自动创建)
#方式1:通过.的方式来获取
print("获取————————————")
db=client.python       #a连接名
# print(db)
# print(type(db)) #<class 'pymongo.database.Database'>
#方式2:通过[]的方式来获取
#
# db=client['a']
# print(db)
# print(type(db))
#3.获取集合(如果有集合对象就获取,没有会自动创建)
print("集合————————————")
#方式1:通过.的方式来获取
col=client.stu
# print(col)
#获取对象的类型   》》<class 'pymongo.collection.Collection'>
#方式2:通过[]的方式来获取
# col=db['stu']
# print(col)
# print(type(col))
#获取对象的类型   》》<class 'pymongo.collection.Collection'>
#4.操作集合
from pymongo import MongoClient

# 创建数据库连接对象
client = MongoClient()
# client =MongoClient('127.0.0.1',27017)

# 选择一个数据库
db = client['mytest2']

# 选择一个集合
col = db['stu']

# 增 增 增
# 单条
# col.insert_one({"name":'one'})
# 多条数据
# col.insert_many(
#     [
#         {"name":"hh","age":15},
#         {"name":"hh2","age":15}
#     ]
#
# )

#查询 查询 查询
#一条
selectone=col.find_one()
print(selectone)
#多条
#返回的是一个游标对象
selectolist=col.find()
# print(selectolist)#返回值:<pymongo.cursor.Cursor object at 0x000001C3CFB065E0>
for data in selectolist:
    print(data)
#条件查询
#返回的是一个游标对象
selectolist=col.find({"name":'one'})
# print(selectolist)#返回值:<pymongo.cursor.Cursor object at 0x000001C3CFB065E0>
for data in selectolist:
    print(data)


#改 改 改
#单条
col.update_one({"name":'one'},{"$set":{"name":'two'}})
#多条
col.update_many({"name":'jh'},{"$set":{"name":'jh1'}})

#删 删 删
#单条
# col.delete_one({"name":''})
#多条
col.delete_many({"name":'hh'})

col.insert_many(

    [
        {"name":'蒋欢',"age":20},
        { "name":'李二',"age":18}
     ]

)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

·惊鸿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值