MongoDB与python交互

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB与python交互相关的知识,希望对你有一定的参考价值。

1.Pymongo

PyMongo是Mongodb的Python接口开发包,是使用python和Mongodb的推荐方式。
官方文档

2.安装

进入虚拟环境
sudo pip install pymongo
或源码安装
python setup.py

3.使用

导入模块

import pymongo
#或者
from pymongo import MongoClient

建立于MongoClient 的连接:

client = MongoClient(localhost, 27017) 
# 或者 
client = MongoClient(mongodb://localhost:27017/)

得到数据库

db = client.test_database
# 或者
db = client[test-database]

得到一个数据集合

collection = db.test_collection
# 或者 
collection = db[test-collection]

4.完成命令行项目:学生信息管理(基于Python2.7)

代码操作

#-*- coding:utf-8 -*-
import pymongo

def system():
    print(◆您将进入数据库管理系统,数据无价、谨慎操作!◆)
    print(◇1:查看数据◇)
    print(◇2:增加数据◇)
    print(◇3:修改数据◇)
    print(◇4:删除数据◇)
    print(◇5:搜索数据◇)
    print(●6:退出数据库管理系统●)

    # 建立与mongodb的连接
    client = pymongo.MongoClient(localhost, 27017)
    # 得到数据库
    stu = client[stu]
    # 得到一个数据集合
    message = stu[message]

    while True:
        order = int(raw_input(请输入相关指令:))
        if order==1:
            exit = message.count()
            if exit==0:
                print(抱歉,数据库中目前没有相关数据!)
            else:
                for data in message.find():
                    content = data[name]+data[age]+data[sex]
                    print(content)
        elif order ==2:
            name = raw_input(请输入学生姓名:)
            age = raw_input(请输入学生年龄:)
            sex = raw_input(请输入学生性别(男/女):)
            data = {
                name:name,
                age:age,
                sex:sex,
            }
            message.insert_one(data)
            print (添加成功!)

        elif order == 3:
            name = raw_input(请输入要修改的学生姓名:)
            exit = message.count({name: name})
            if exit != 0:
                age = raw_input(请输入修改后的学生年龄:)
                message.update({name:name},{$set:{age:age}})
                print(修改成功)
            else:
                print 抱歉,数据库中没有这个学生的信息!

        elif order == 4:
            name = raw_input(请输入要删除的学生姓名:)
            exit = message.count({name: name})
            if exit != 0:
                message.remove({name:name})
                print(删除成功)
            else:
                print 抱歉,数据库中没有这个学生的信息!

        elif order == 5:
            name = raw_input(请输入要查询的学生姓名:)
            exit = message.count({name:name})
            if exit!=0:
                data = message.find_one({name:name})
                content = data[name]+data[age]+data[sex]
                print content
            else:
                print 抱歉,数据库中没有这个学生的信息!

        elif order == 6:
            print(感谢您的使用!)
            break
        else:
            print(您的输入有误,请输入有效指令(1/2/3/4/5))

if __name__ == __main__:
    system()

 

技术分享
测试结果


以上是关于MongoDB与python交互的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 2.5与python交互

MongoDB与Python交互

MongoDB与python交互

python 与mongodb 交互

python 与 mongodb的交互--更新操作

MongoDB与Python的交互