好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

查看更多关于Python数据库 3.MongoDB(区分大小写)的详细内容...

  阅读:26次