zoukankan      html  css  js  c++  java
  • MongoDB数据库

    '''
    mongodb :非关系型数据、在硬盘上

    windows安装:软件下一步安装(自动添加到服务,勾选)
    mongod启动起来了
    cmd下敲 mongo 连接上
    用第三方软件连接: robo 3t

    数据库操作:
    -创建
    -use 数据库名字 (有则进入,无则创建,如果没有数据,show dbs是看不到的)
    -删除
    -use config #先切换到要删的库下
    -db.dropDatabase() #删除当前库

    集合操作(表操作)
    -创建
    -在表中插入一条数据,就自动创建了
    -db在哪个库中,db就是谁
    -db.table1.insert({"name":"lqz","age":18})
    -db.table1.insert({"name":"lqz","age":18,"sex":"男"})
    -show dbs 这个数据库就能看到了
    -show tables 这个表就能看到了
    -删除
    -db.table2.drop()

    数据行,文档操作
    -新增
    -db.table1.insert({"name":"lqz","age":18})
    -先定义出一个对象(字典),db.table1.insert(字典名)
    -插入多条
    -db.table1.insertMany([user1,user2,user3,user4,user5])
    -查询
    db.table1.find()
    -1、select * from db1.user where name = "egon";
    db.table1.find({name:"egon"})
    -select * from db1.user where name != "alex";
    db.table1.find({name:{"$ne":"egon"}})
    -不等于,大于,小于,大于等于,小于等于
    -$ne $gt $lt $gte $lte
    -db.table1.find({"_id":{"$gte":2,}})
    -db.table1.find({'_id':{"$mod":[2,1]}})
    db.table.find({'_id':{"$not":{"$mod":[2,1]}}})
    -db.table1.find({"age":{"$in":[20,30,31]}})
    -db.table.find({'name':/^j.*?(g|n)$/i})
    -db.table.find({'_id':3},{'_id':0,'name':0,'age':1})
    -db.table1.find({"hobbies.3":'tea'})
    -db.table1.find({"hobbies.0":'music'})
    -db.table1.find({},{'hobbies':{"$slice":-2},"age":1,"_id":0,"name":0,"addr":0})

    -db.table1.find({},{'hobbies':{"$slice":-2}})
    -db.table1.find({},{'hobbies':{"$slice":[1,2]},})
    -db.user.find().sort({"_id":1,})
    -db.user.find().sort({'_id':1}).limit(2).skip(4)
    -db.table1.find({'age':{"$gt":30}}).count()
    12 34 45

    修改
    -db.user.update({'age':20},{"name":"Wxx","hobbies_count":3}) 覆盖式的
    -db.table1.update({'_id':2},{"$set":{"name":"WXX",}}) 不覆盖
    -db.table1.update({'_id':6},{"$set":{"name":"egon","age":18}},{"upsert":true})
    -db.table1.update({},
    {
    "$inc":{"age":-5}
    },
    {
    "multi":true
    }
    )


    select avg(salary) as avg_salary,post from db1.emp where id > 3 group by post having avg_salary > 10000;
    '''

    #用python操作mongodb
    from pymongo import MongoClient

    #1、链接
    # client=MongoClient('mongodb://root:123@localhost:27017/')
    client = MongoClient('localhost', 27017)

    #2、use 数据库
    # db=client['db2'] #等同于:client.db1
    db=client.test

    #3、查看库下所有的集合
    # print(db.collection_names(include_system_collections=False))#4、创建集合
    table_user=db['table1'] #等同于:db.user
    # table1=db.table1
    # #5、插入文档
    # import datetime
    # user0={
    # "_id":1,
    # "name":"egon",
    # "birth":datetime.datetime.now(),
    # "age":10,
    # 'hobbies':['music','read','dancing'],
    # 'addr':{
    # 'country':'China',
    # 'city':'BJ'
    # }
    # }
    #
    # user1={
    # "_id":2,
    # "name":"alex",
    # "birth":datetime.datetime.now(),
    # "age":10,
    # 'hobbies':['music','read','dancing'],
    # 'addr':{
    # 'country':'China',
    # 'city':'weifang'
    # }
    # }
    # res=table_user.insert_many([user0,user1])
    # res=table_user.insert_many
    # print(res)
    # print(table_user.count())

    #6、查找

    # from pprint import pprint#格式化细
    # pprint(table_user.find_one())
    # for item in table_user.find():
    # pprint(item)

    print(table_user.find_one({"_id":{"$gte":1},"name":'egon'}))
    table_user.find()

    #7、更新
    table_user.update({'_id':1},{'name':'EGON'})

    #8、传入新的文档替换旧的文档
    table_user.save(
    {
    "_id":2,
    "name":'egon_xxx'
    }
    )
  • 相关阅读:
    Mysql 修改本地密码
    关于Ubuntu18.04 linux系统使用安装JDK Mysql
    关于 java编程思想第五版 《On Java 8》
    关于Ubuntu18.04 linux系统使用搜狗输入法 出现乱码
    关于Ubuntu18.04 linux系统下使用Tim QQ 微信
    项目启动时报错Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
    Ubuntu 16.04 LTS 64位系统 安装Docker
    安装Ubuntu服务器版 + 远程连接ssh +更换阿里云源
    机器学习-简单线性回归(一)
    机器学习-神经网络算法应用(二)
  • 原文地址:https://www.cnblogs.com/wukai66/p/11950999.html
Copyright © 2011-2022 走看看