美文网首页
MongoDB与Python交互

MongoDB与Python交互

作者: 咻咻咻滴赵大妞 | 来源:发表于2018-12-30 17:07 被阅读0次

连接

# mongodb与python的交互
#  pip3 intsall pymongo
import pymongo
from bson.objectid import ObjectId

#创建mongo客户端链接
mongoConn = pymongo.MongoClient('localhost',27017)
# 第二种
# mongoConn = pymongo.MongoClient('mongodb://localhost:27017/')

#有账号和密码的连接
#mongoConn = pymongo.MongoClient('mongodb://user:paw@localhost:27017/')

#操作数据库下的集合
#获取要操作的数据库
# use_db = mongoConn.数据库名称
use_db = mongoConn.mongotest
# use_db = mongoConn['mongotest']

#获取数据库下要操作的集合
use_col = use_db.class1804
# use_col = use_db['class1804']

文档操作

def add_data():
    document = {
        # '_id':'2e761r27e1' 指定id
        'name':'liyong',
        'age':20,
        'gender':'男',
        'class':'1804',
    }

    document1 = {
        'name':'lihua',
        'age':22,
        'gender':'男',
        'class':'1804',
    }
    #插入单条(result直接返回一个id串)
    # result = use_col.insert(document)
    # use_col.insert_one(document)
    #插入多条(result直接返回list(Object(...),Object(...))
    result = use_col.insert([document,document1])
    # use_col.insert_many([document,document1])
    #也可以使用save
    # use_col.save(document)
    print(result)

def delete_data():
    #删除一条
    #result = use_col.delete_one({})
    # result = use_col.remove({'name':'liyong'},multi=False)
    # print(result)
    #删除多条
    # result = use_col.delete_many({})
    # multi=False删除一条,multi=True删除多条,
    result = use_col.remove({'name':'liyong'})
    print(result)

def update_data():
    #默认情况下只修改一条
    # result = use_col.update({'name':'liyong'},{'$set':{'age':23}})
    # print(result)
    #全文档更新只修改一条
    # result = use_col.update({'name':'liyong'},{'name':'lisi','age':23})
    # print(result)
    #更新超照到的全部结果修改多条
    # result = use_col.update_many({'name':'liyong'},{'$set':{'age':23}})
    # print(result)
    # 使用save做更新操作,全文档更新
    #注意:name 'ObjectId' is not defined,导入Bson模块下的objectid
    result = use_col.save(
        {'_id':ObjectId("5b836b9711575e79be9af0c7"),
        'name':'wangwu'}
    )

def find_data():
    # 使用find查询,会返回一个cursor对象,
    #<pymongo.cursor.Cursor object at 0x7fa13d988e10>
    # 我们要拿到数据,需要遍历
    # result = use_col.find({'name':'liyong'})
    # print(result)
    # print([i for i in result])

    # result = use_col.find_one_and_delete()
    # result = use_col.find_one_and_replace()
    # result = use_col.find_one_and_update()

    #find_one查询时,直接返回一个字典
    # result = use_col.find_one({'name':'liyong'}) 
    # print(result)
    # print(type(result))

    #跳过和限制查询s
    # result = use_col.find({}).limit(4).skip(2).sort([("age",1),("name",1)])
    result = use_col.find({}).limit(4).skip(2).sort("age",1).sort("name",1)
    print([i for i in result])

    # for dict in result:
    # print(dict)
if __name__ == '__main__':
    # add_data()
    # update_data()
    # find_data()
    # delete_data()

相关文章

网友评论

      本文标题:MongoDB与Python交互

      本文链接:https://www.haomeiwen.com/subject/tlwvlqtx.html