什么是MongoDB?
MongoDB 是一个跨平台的,面向文档的数据库,是当前 NoSQL 数据库产品中最热门的一种。它介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的产品。它支持的数据结构非常松散,是类似JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。其最小的单元是文档,缺点:比较耗内存。
mongo
:进入mongo
show dbs
:查看所有数据库 (前3个是配置信息)
use 数据库名
:切换/创建数据库(存在就进入,不存在就创建)
db
:查看所在库
db.dropDatabase()
: 删除库(要先进入才能删除)
show collections
:查看当前数据库的集合
db.createCollection('stu')
: 创建集合 stu:集合名
db.stu.drop()
: 删除集合 stu:集合名
db.集合名称.insert(文档)
示例:
#插入一条数据
db.stu.insert({name:'wang',age:19})
#插入多条数据
db.stu.insert([
{name:'wang',sex:'男',age:18},
{name:'li',sex:'女',age:16},
{name:'bai',sex:'男',age:19},
])
注意:我们插入数据后,系统会自动生成一个_id
,我们可以在插入时更改这个id,如:
db.stu.insert({_id:1,name:'wang',age:19})
1、查询所有数据
db.stu.find() 整体查询
db.stu.find().pretty 格式化显示,美观查询
2、条件查询
db.stu.find({name:'wang'},{age:1}) 显示满足姓名为'wang'的年龄
db.stu.find({name:'wang'},{age:0}) 不显示满足姓名为'wang'的年龄
and条件、 or条件(注意在使用and或or前不能漏掉$
)
db.students.find({$or:[{},{}]})
db.students.find({$or:[{$and:[{},{}]},{$and:[{},{}]}]})
$gt
:大于
$lt
:小于
$gte
:大于或等于
$lte
:小于或等于
$ne
:不等于
示例:
db.stu.find({
$or:[
{$and:[{sex:'女'},{age:18}}]}, #条件1
{
&and:[{sez:'男'},{age:{$gt:18}}]} #条件2
]
})
查询满足条件1或者条件2的数据
条件1:性别女并且年龄18岁
条件2:性别男并且年龄大于18岁
$set
:有就修改,没有就创建
db.stu.update({name:'wang'},{name:wangwang}) 只会修改一条数据,并且其他数据也没了
db.stu.update({name:'wang'},{$set:{age:25}}) 只会修改一条数据,并且其他数据保留
db.stu.update({name:'bai'},{$set:{age:25}},{multi:true}) 会修改多条(所有满足条件)数据,并且其他数据数据保留
db.stu.remove({age:25},{justOne:true}) 只删除符合条件的第一条数据 注意justOne的大小写
db.stu.remove({age:25}) 删除符合条件的所有数据
db.stu.remove({}) 删除所有数据
#准备--------------------------------------------------------
#导入模块
import pymongo
#systemctl start mongodb.service 开启服务
#1、建立连接
client = pymongo.MongoClient('127.0.0.1',27017)
#2、指定数据库
db = client['mydb']
#3、指定集合
collection = db['stu']
#操作---------------------------------------------------------
#增
#插入一条
collection.insert_one({
'name':'wu','sex':'男','age':18})
#插入多条
collection.insert_many([
{
'name':'wang','sex':'男','age':18},
{
'name':'li','sex':'女','age':16},
{
'name':'bai','sex':'男','age':19},
])
#改
#修改一条
collection.update_one({
'name':'wang'},{
'$set':{
'age':20}})
#修改多条
collection.update_many({
'name':'li'},{
'$set':{
'age':21}})
#删
#删除一条满足条件
collection.delete_one({
'name':'li'})
#删除多条满足条件
collection.delete_many({
'name':'li'})
#删除所有
collection.delete_many({
})
#查
data = collection.find()
for i in data:
print(i)