美文网首页
python与MongoDB交互

python与MongoDB交互

作者: zy小太阳 | 来源:发表于2018-12-30 20:07 被阅读0次

eg:

import pymongo
from pymongo.results import DeleteResult
from bson.objectid import ObjectId

# 创建数据库连接
''''
# host=None,  : IP 127.0.0.1
# port=None,  :端口  27017
# '''
mongo_client = pymongo.MongoClient(
    host = '127.0.0.1',port=27017
)
# mongo_client = pymongo.MongoClient(
#     'mongodb://127.0.0.1:27017/'
# )
# 需要账号密码登陆时
# mongo_client = pymongo.MongoClient(
#     'mongodb://username:password@ip:port'
# )
#选择数据库
db = mongo_client['mongotest']
# db = mongo_client.mongotest

# 选择数据库下的集合
col_name = db['test']
# 插入数据
# def insert_data():
#     document1 = {
#         'title': 'zhangzengrui',
#         'actors': '未知',
#         'tags': '动作1',
#         'info': '古罗马传记1',
#         'age': 12
#     }
#     document2 = {
#         'title': 'zhangzengrui',
#         'actors': '未知',
#         'tags': '动作1',
#         'info': '古罗马传记1',
#         'age': 15
#     }
#     document3 = {
#         'title': 'zhangzengrui',
#         'actors': '未知',
#         'tags': '动作1',
#         'info': '古罗马传记1',
#         'age': 18
#     }
    # result = col_name.insert(document1)
    # result = col_name.insert([document1,document2,document3])
    # result = col_name.insert_many([document1,document2])
    # print(result)

# def update_data():

    # 指定属性更新 multi为False时只修改一条
    # upsert = False,表示如要更新的文档不存在就什么都不做,如为True会插入新文档
    # result = col_name.update(
#     #     {'title': '斯巴达克斯3'},
#     #     {'$set': {'info': '1712B'}}
#     # )
#     # print(result)
    # 全文档更新multi为False时只修改一条
    # result = col_name.update(
    #     {'title': '斯巴达克斯3'},
    #     {'name': '天真','gender': '女','age': 18}
    # )
    # print(result)

    # result = col_name.update_one(
    #     {'name': '天真'},
    #     {'$set': {'age':20,'class':'1712B'}}
    # )
    # print(result)
    # col_name.update_many()

    # save方法可保存页可更新 会做全文档更新
    # result = col_name.save(
    #     {'_id': 'ObjectId("5c25e77bfd2c4f1de07b6c81")',
    #         'title': '这是啥呀', 'info': '1712B', 'age': 20}
    # )
    # 如ID不存在则插入新数据
    # result = col_name.save(
    #     {'_id': '1234567890',
    #      'title': '这是嘛呀', 'info': '1712B', 'age': 20}
    # )
    # print(result)

def find_data():
    # 查找所有
    # result = col_name.find({})
    # 根据条件查找所有
    # result = col_name.find({'name': '天真'})
    # print([i for i in result])
    # 查找一条
    # result = col_name.find_one({'name': '斯巴达克斯1'})
    # print(result)
    # limit : 限制查询
    # skip ;跳过
    # sort: 排序  1: 升序
    result = col_name.find({}).skip(2).limit(3).sort('age',1)
    # 多个字段排序
    result = col_name.find({}).skip(2).limit(3).sort([('age',1),('year',1)])
    for i in result:
        print(i)

# 删除
# def delete_data():
#     # 默认multi为True表示删除多条
#     # 删除一条
#     result = col_name.remove({'title': '斯巴达克斯1'}, multi=False)
#     print(result)
#     # 删除一条
#     result = col_name.delete_one({'title': '斯巴达克斯2'})
#     print(result)
#     # 删除多条
#     result = col_name.delete_many({'title': '斯巴达克斯1'})
#     print(result.deleted_count())

if __name__ == '__main__':
    # insert_data()
    # delete_data()
    # update_data()
    find_data()

相关文章

网友评论

      本文标题:python与MongoDB交互

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