python之操作MongoDB

安装

[官方网站](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()

实战练习

  1. 创建一个学生信息表(至少包含:姓名,性别,成绩,年龄)
  2. 写入十五条不同的数据
  3. 查询所有男生的数据只需要学生的姓名和年龄
  4. 查新成绩及格的学生信息(大于60分)
  5. 查询所有18岁的男生和16岁的女生的数据
  6. 按照学生的年龄进行排序
  7. 将所有的学生年龄增加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!

猜你喜欢

转载自blog.csdn.net/weixin_41676178/article/details/81088380