zoukankan      html  css  js  c++  java
  • Python数据库 3.MongoDB(区分大小写)

    3.1 认识MongoDB(可扩展的 高性能的)

    进入 mongo 退出 exit

    基于分布式文件存储的开源数据库系统。旨在为WEB应用提供可扩展的高性能数据存储解决方案,将数据存储为一个文档,文档类似与Json格式,

    {
      name:"小明",
      age:16,
      address: {city:"长沙", country:"china"}
    }

    关系型数据庠               MongoDB数据庫

    1.数据库                   1.数据庠
    2.表                       2.Collection
    3.行                       3. Document

    数据庠(Database)        数据庠(Database)

    Student表             Collection(集含)

    Dname     age

    nicholas   27         {name:nicholas,age:27}                      
    wenddy     26         {name:wenddy.age:26}

    行 Document(文档)

    nicholas   27         {name:nicholas,age:27}

     

     

     

    3.2 库、集合操作

    库级操作语句:

    显示所有库: show dbs

    切换/创建数据库: use 数据库名称 (里面没有数据就不显示)
    查看所在库: db

    删除库:db.dropDatabase()  

    集合操作语句:

    显示当前数据库的集合: show collections

    创建集合: db.createCollection('name')

    删除集合: db.集合名称.drop()

    3.3 文档操作

    1.添加文档(数据)

    db.集合名称.insert(document)
    • 每一条数据,就是一个document,就是一条json 例:

      db.student.insert({name:'xiaoming', age:18})

    • 添加文档时,如果不指定 _id 参数 MongoDB会为文档分配一个唯一的ObjectId 例:

      db.student.insert({'_id':1, name:'xiaoming', age:18})

    • 添加多条文档

      db.student.insert([ {name:xiaoming', sex:'男', age:16}, {name:’xiaobai', sex:'男', age:18}, {name:’moran‘, sex:’女', age:18}, ])

    2.查询文档(数据)

    db.集合名称.find([conditions])
    • MongoDB的条件语句也十分的强大

      查看集合中全部数据: db.student.find() 格式化显示: db.student.find().pretty() 查看满足条件的数据: db.student.find({name:'xiaoming'})

     

    3.噩梦条件

    and条件 {$and:[{expression1}, {expression1}, ...] } or条件 {$or:[{expression1}, {expression1}, ...] }

    and和or混用
    db.table.find({$or:[{$and:[{sex:'女'}, {age:18}]},{$and:[{sex:'男'}, {age:{$gt:18}}]}]})

    4.操作符

    操作符   描述

    $ne     不等于
    $gt 大于
    $lt 小于
    $gte 大于等于
    $lte 小于等于

    例子:

    db.user.find({'age': {'$ne': 45}})

     

    5.修改文档(数据)

    db.集合名称.update( <query> , <update>, {multi:<boolean>})
    • 1.修改一条数据:(后面为全部数据 )

      db.table.update({sex:'男'}, {age:20})

    • 2.指定属性修改: { $set: {age:20} }

      db.table.update({name:'xiaoming'}, {$set: {age:666, sex: 'xx'}} )

    • 3.更新集合中所有满足条件的文档: { multi: true }

      db.table.update({sex:'男'}, {$set:{sex:'女'}}, { multi:true} )

    6.删除文档(数据)

    db.集合名称.remove(<query>, {justOne:<boolean>})
    • 1.删除集合中所有的文档:

      db.table.remove({})

    • 2.删除集合中满足条件的所有文档

      db.table.remove({sex: '男'})

    • 3.只删除集合中满足条件的第一条文档: { justOne: true }

      db.table.remove({sex:'男'}, { justOne:true} )

    3.4Python与MogoDB交互

    MongoDB(区分大小写)

    pip install pymongo

    建立连接:client = pymongo.MongoClient()

    指定数据库:db = client[数据库名]

    指定集合:collection=db[集合名]

    python3中不推荐下列方法 (使用也没问题)

    查找文档: find()
    添加文档:insert()
    修改文档:update()
    删除文档:remove()

    官方推荐我们使用如下的方法

    • 1.查找一条文档:

      find_one() 查找所有:find()

    • 2.添加一条文档:

      insert_one 添加多条:insert_many()

    • 3.删除一条文档:

      delete_one 删除多条:delete_many()

    • 4.修改一条文档:

      update_one 修改多条:update_many()

     


    import pymongo

    client = pymongo.MongoClient()     #虚拟机解释器就不用写
    client = pymongo.MongoClient(host='',port='')

    db = client[数据库名]

    collection = db[集合名]



    #################################

    import pymongo

    class MyMongo(object):
       def __init__(self,db,collection):
           self.client=pymongo.MongoClient()
           self.db=self.client[db]
           self.collection=self.db[collection]

       def insert(self,data,onlyOne=True):
           # my_data={'sign':'nanbei'}
           # data.updata(my_data)
           if onlyOne:
               self.collection.insert_one(data)
           else:
               self.collection.insert_many(data)

    if __name__=='__main__':
       m=MyMongo('python34','course')
       m.insert({'name':'python','teacher':'nanbei'})

     

  • 相关阅读:
    用于聚类的信用卡数据
    微信支付 参考
    小程序中 自定义组件的使用
    小程序页面跳转传参
    小程序人脸核身
    ant desgin pro 的项目中 封装的 socket.js
    vscode红色波浪线
    ant desgin pro 的项目中 请求之封装
    小程序的请求 方式封装
    浏览器网页链接打开本地exe客户端程序 及 无法导入,指定文件不是注册脚本.您的注册表编辑器只能导入2进位注册文件
  • 原文地址:https://www.cnblogs.com/dyf25288-/p/11701587.html
Copyright © 2011-2022 走看看