zoukankan      html  css  js  c++  java
  • python pymongo操作之增删改查

    import pymongo  #导入操作mongo的模块

    client=pymongo.MongoClient(host='localhost',port=27017)  #连接本地的服务端
    db=client.school  #指定操作的数据库
    collection=db.students  #指定操作的集合

    插入数据

    a1={
    'id':5,
    'name':'憨憨',
    'age':22,
    'gender':'男'
    }
    a2={
    'id':5,
    'name':'憨憨',
    'age':22,
    'gender':'男'
    }

    插入一个文档(3.x不推荐使用了)
    collection.insert(a1)
    插入多个文档((3.x不推荐使用了)
    collection.insert([a1,a2])

    插入一个文档(推荐使用)
    collection.insert_one(a1)
    插入多个文档(推荐使用)
    collection.insert([a1,a2])

    删除集合中的文档(数据记录行)

    ①remove({query})
    删除的是所有查询条件的文档(现在不推荐使用这种方法)
    ②remove_one({query})
    删除的是查询条件的文档的第一个
    ③remove_many({query})
    删除的是所有查询条件的文档(推荐使用这种方法)
    如果方法中不传参数的话,就是把这个集合中(表)所有文档全部删除

    删除集合(表)

    ①drop()
    collection.drop()

    如果数据库中只有一个集合时,删除了最后一个集合,这个数据库就自动也删除了

    更新数据

    ①update()   ((3.x现在已经不推荐使用了)
    不加$set时,只能修改一个查询文档(数据记录行)的域(数据字段),并且是进行覆盖
    result=collection.update({'name':'LEE'},{'age':20})
    加了$set时,只修改第一个符合条件的文档(数据记录行)的域(数据字段),有这个字段(域)时就是修改,没有的时候就是添加,其他的已存在的字段(域)不变.
    result=collection.update({'name':'憨憨'},{'$set':{'age':20}})
    ②update_one()
    只修改第一个符合条件的文档(数据记录行)的域(数据字段),有这个字段(域)时就是修改,没有的时候就是添加,其他的已存在的字段(域)不变.
    修改时必须加上$set,不然会报错.
    ③update_many()
    修改所有符合条件的结果,有这个字段(域)时就是修改,没有的时候就是添加,其他的已存在的字段(域)不变.
    修改时必须加上$set,不然会报错.

    查询数据

    ①find_one({query})
    student=collection.find_one({'name':'LEE'})
    查找符合条件的第一个文档,得到的是整个文档的具体域
    ②find({query})
    查找符合条件的所有文档,返回的是一个生成器对象.(需要遍历获取具体每个文档的域)

  • 相关阅读:
    Postgresql中string转换成timestamp类型
    zTree节点重叠或者遮挡
    Powerdesigner+Execel
    Powerdesigner+PostgreSQL
    PostgreSQL 的 distinct on 的理解
    PostgreSql问题:ERROR: operator does not exist: timestamp without time zone > character varying
    git分支小问题
    SSH问题:系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常
    PostgresSQL中的限制和级联删除
    sql语句添加删除外键及其约束
  • 原文地址:https://www.cnblogs.com/lnd-blog/p/11677653.html
Copyright © 2011-2022 走看看