py-mongdb语法

mongdb语法

“面向集合”(Collection-Oriented),意思是数据被分组存储在数据集中,被称为一个集合(Collection)。

每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。每个集合被创建时含有唯一标识名。

集合概念类似与sql中的表(table),但是不需要定义任何模式(schema)。

不适用的场景如下:

1)要求高度事务性的系统。

2)传统的商业智能应用。

3)复杂的跨文档(表)级联查询。

一、进入退出mongo

mongo进入
exit退出

显示所有库: show dbs

二、库操作

* 显示所有库: show dbs
* 切换数据库: use 数据库名称
* 查看所在库: db
* 删除库:db.dropDatabase()  

三、集合操作

查看当前数据库的集合: show collections

集合创建:
db.createCollection(name,options)

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

四、数据操作的增删改查

1. 插入数据

db.集合名称.insert(document)

每一条数据,就是一个document,即一条json

插入文档时,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId

与sql 的对比,sql中的表==集合,元组==文件

例: db.student.insert({name:‘lucky',age:18})

插入多条

db.student.insert([
    {name:'jianeng',sex:'male',age:18},
    {name:'张三',sex:’female',age:30 },
    {name:'李四',sex:’male',age:48 },
])

2. 删除数据

删除满足条件的,所有数据:
db.student.remove({sex:'女'})

只是删除 一条
db.student.remove({sex:'女'},{justOne:true })

3. 更新数据

db.集合名称.update(
   <query>, (条件)
   <update>,
   {multi: <boolean>}
)

全文档更新: db.stu.update({name:’haha’},{xx:’yy’ } )

指定属性更新,通过操作符$set
db.student.update({name:'jianeng'},{$set{name:'xxx',age:666 }})

更新多条(字段更新): { multi: ture }

db.student.update( {sex:’feamle'},{$set:{sex:''}},{ multi:true} )

4. 查询数据

db.集合名称.find(query, projection)

例:db.student.find( )

query :可选,使用查询操作符指定查询条件
projection :可选,使用投影操作符指定返回的键。
查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

若不指定 projection,则默认返回所有键,指定 projection 格式如下,有两种模式

db.collection.find(query, {title: 1, by: 1}) // inclusion模式 指定返回的键,不返回其他键
db.collection.find(query, {title: 0, by: 0}) // exclusion模式 指定不返回的键,返回其他键
_id 键默认返回,需要主动指定 _id:0 才会隐藏
两种模式不可混用(因为这样的话无法推断其他键是否应返回)
db.collection.find(query, {title: 1, by: 0}) // 错误
只能全1或全0,除了在inclusion模式时可以指定_id0
db.collection.find(query, {_id:0, title: 1, by: 1}) // 正确

五、使用python操作MongoDB

(一)连接器

  1. 安装python包:pip install pymongo

  2. 引入包pymongo:import pymongo

  3. 建立连接并创建客户端:

    client= pymongo.MongoClient(‘127.0.0.1’, 27017)

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

  5. 指定集合:stu=db [ 集合名]

(二)主要方法

  • insert_one
  • insert_many
  • update_one
  • update_many
  • delete_one
  • delete_many
  • find_one
  • find
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值