加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python数据库 3.MongoDB(区分大小写)

发布时间:2020-12-20 10:15:57 所属栏目:Python 来源:网络整理
导读:3.1 认识MongoDB(可扩展的 高性能的) 进入 mongo 退出 exit 基于分布式文件存储的开源数据库系统。旨在为WEB应用提供可扩展的高性能数据存储解决方案,将数据存储为一个文档,文档类似与Json格式, { ? name:"小明", ? age:16, ? address: {city:"长沙",

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‘,age:18}, {name:’moran‘,sex:’女‘, ])

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},...] }

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‘})
?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读