安装
[官方网站](https://www.mongodb.com/download-center
启动
- Windows:mongod.exe –dbpath yourpath:\MongoDB\DB
- Mac:mongod –config /usr/local/etc.mongod.conf
Linux:sudo service mongod start
创建
db.collection.insert()
db.collection.insertOne()
db.collection.insertMany()
读取与更新
db.collection.find()
db.collection.update()
db.collection.updateOne()
db.collection.replaceOne()
删除
db.collection.remove()
db.collection.deleteOne()
db.collection.deleteMany()
实战练习
- 创建一个学生信息表(至少包含:姓名,性别,成绩,年龄)
- 写入十五条不同的数据
- 查询所有男生的数据只需要学生的姓名和年龄
- 查新成绩及格的学生信息(大于60分)
- 查询所有18岁的男生和16岁的女生的数据
- 按照学生的年龄进行排序
- 将所有的学生年龄增加1岁
数据文档
db.students.insertMany(
[
{ name:'bob', age:16, sex:'male', grade:95 },
{ name:'ahn', age:18, sex:'female', grade:45 },
{ name:'xis', age:15, sex:'female', grade:47 },
{ name:'yfg', age:16, sex:'male', grade:67 },
{ name:'dff', age:18, sex:'male', grade:66 },
{ name:'dsf', age:15, sex:'female', grade:95 },
{ name:'gcv', age:16, sex:'female', grade:96 },
{ name:'sdf', age:18, sex:'male', grade:56 },
{ name:'xcv', age:18, sex:'male', grade:70 },
{ name:'dfe', age:15, sex:'male', grade:56 },
{ name:'sdfd', age:16, sex:'female', grade:76 },
{ name:'xcvc', age:18, sex:'male', grade:55 },
{ name:'xcvd', age:16, sex:'female', grade:67 },
{ name:'sdfv', age:16, sex:'male', grade:88 },
{ name:'ddsa', age:18, sex:'female', grade:91 },
]
)
查询所有男生的数据只需要学生的姓名和年龄
db.students.find({sex:'male'},{name:1, age:true, _id:0})
查新成绩及格的学生信息(大于60分)
db.students.find({grade:{'$gte':60}})
gte:大于等于 lte:小于等于
查询所有18岁的男生和16岁的女生的数据
db.students.find({'$or':[{sex:'male',age:18},{sex:'female',age:16}]})
按照学生的年龄进行排序
升序
db.students.find().sort({age:1})
降序
db.students.find().sort({age:-1})
将所有的女学生年龄增加1岁
为数据增加属性 $set
db.students.update({sex:'female'},{'$set':{address:'vue'}},{multi:true})
*改变年龄 $inc*7
db.students.update({sex:'female'},{'$inc':{age:1}},{multi:true})
图形化管理工具
Robomongo
下载链接
pymongo安装
为了节省时间 我们使用清华的国内镜像
pip install pymongo -i https://pypi.tuna.tsinghua.edu.cn/simple/
连接数据库
#方式一:
client = MongoClient()
#方式二:指定端口和地址
client = MongoClient('localhost',27017)
#方式三:
client = MongoClient('mongodb://localhost:27017/')
操作数据库
from datetime import datetime
from pymongo import MongoClient
from bson.objectid import ObjectId
class TestMongo(object):
def __init__(self):
self.client = MongoClient()
self.db = self.client['blog']
# 新增数据
def add_one(self):
post = {
'title': '新的标题',
'content': '博客内容。。。',
'created_at': datetime.now()
}
return self.db.blog.post.insert_one(post)
#查询1条数据
def get_one(self):
return self.db.blog.posts.find_one()
# 查询多条数据
def get_more(self):
return self.db.blog.posts.find({'x':1})
#查询指定ID的数据
def get_one_from_oid(self, oid):
obj = ObjectId(oid)
return self.db.blog.posts.find_one({'_id': obj})
#修改数据
def update(self):
#修改一条数据
#rest = self.db.blog.posts.update_one({'title':'first'},{'$inc':{'x':3}})
#修改多条数据
rest = self.db.blog.posts.update_many({},{'$inc':{'x':1}})
# 匹配的次数
print(rest.matched_count)
#修改的数量
print(rest.modified_count)
return rest
#删除数据
def delete(self):
# 删除一条数据
return self.db.blog.posts.delete_one({'title':'first'})
#删除多条数据
# return self.db.blog.posts.delete_many({'x':1})
be stronger !be higher! be depper!