zoukankan      html  css  js  c++  java
  • python操作mongodb的基本操作命令

    import pymongo

    # 连接mongo数据库
    db = pymongo.MongoClient(host='127.0.0.1', port=27017)
    # 数据库名为 test 连接数据库,没有则自动创建
    db_test = db.test
    print(db_test)
    # Database(MongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True), 'test')

    # 创建test_set集合, 相当于 test库 的表名
    db_set = db_test.test_set
    print(db_set)
    # Collection(Database(MongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True), 'test'), 'test_set')

    # 显示所有数据库
    dbs = db.list_database_names()
    print(dbs)
    # ['admin', 'config', 'db_video', 'hello_mongo', 'local', 'mydb', 'rideo', 'test']

    # 插入数据
    # users = [{"name": "zhangsan", "age": 18}, {"name": "lisi", "age": 20}]
    # db_set.insert(users)

    # 更新名字叫zhangsan的信息,将年龄改成25
    db_set.update({"name": "zhangsan"}, {'$set': {"age": 20}})
    # 查找年龄等于20的第一个用户信息
    user1 = db_set.find_one({"age": 20})
    print("find_one : ", user1) # 字典
    # find_one : {'_id': ObjectId('5dcfbd3d4be52c1057d181d9'), 'name': 'zhangsan', 'age': 20}
    # 遍历用户信息 表.find()查找全部信息
    for i in db_set.find():
    print(i)
    # {'_id': ObjectId('5dcfbd3d4be52c1057d181d9'), 'name': 'zhangsan', 'age': 20}
    # {'_id': ObjectId('5dd265c41245d259da7a1f56'), 'name': 'lisi', 'age': 20}

    print(i['name'])
    # zhangsan
    # lisi
    print("***********")
    # find()是游标对象
    print(db_set.find())
    # <pymongo.cursor.Cursor object at 0x0000000002F05DD8>
    print("***********")

    # 获取大于15岁的用户的信息
    user2 = db_set.find({"age": {'$gte': 15}})
    print(user2) # <pymongo.cursor.Cursor object at 0x0000000002F06E48>
    for i in user2:
    print("find : ", i, type(i)) # 返回的是一个游标

    # 查找所有信息,病获取第一个
    user3 = db_set.find().limit(1)
    print(type(user3), user3, user3[0])
    # <class 'pymongo.cursor.Cursor'>
    # <pymongo.cursor.Cursor object at 0x0000000002F21668>
    # {'_id': ObjectId('5dcfbd3d4be52c1057d181d9'), 'name': 'zhangsan', 'age': 20}
    # find : {'_id': ObjectId('5dd265c41245d259da7a1f56'), 'name': 'lisi', 'age': 20} <class 'dict'>
    print("-------------")
    # 创建文档数据
    person_one = {
    'name': '小米',
    'age': '24',
    'height': '175',
    'weight': '60'
    }
    person_two = {
    'name': '大米',
    'age': '24',
    'height': '175',
    'weight': '60'
    }

    #批量文档插入数据库
    result = db_set.insert_many([person_one, person_two]) # 文档插入集合
    print(result) # 打印结果 <pymongo.results.InsertManyResult object at 0x0000000002F17348>
    print(result.inserted_ids) # 打印插入数据的返回 id 标识
    #[ObjectId('5dd6031eb9699584671e5ed1'), ObjectId('5dd6031eb9699584671e5ed2')]
    #
    # 根据key 删除key为name的值
    db_set.remove({"name": "大米"})
    db_set.remove({"name": "小米"})
    # 一个文档插入数据库
    res = db_set.insert_one(person_one)
    print(res) #<pymongo.results.InsertOneResult object at 0x0000000002F174C8>
    #查找name等于小米的用户信息
    for i in db_set.find({"name": "小米"}):
    print(i['name'])
    db_set.remove({"name": "小米"})



  • 相关阅读:
    JDK8 Optional类使用
    Kafka RocketMQ
    Dubbo,ElasticSearch,JVM,多线程/高并发,消息中间件 常问问题
    Redis
    java jvm 虚拟机
    25 岁做什么,可在 5 年后受益匪浅?
    设计模式
    并发与并行的理解
    多线程学习
    FireFox 如何在当前页面打开书签
  • 原文地址:https://www.cnblogs.com/maplethefox/p/11904521.html
Copyright © 2011-2022 走看看