热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pymongo的几个常用操作

学到了MongoDBMongo是一个基于分布式文件存储的数据库,由C++编写,旨在为Web应用提供可拓展的高性能数据存储解决方案.它介于关系数据库和非关系数据库之间,在非关系数据

学到了 MongoDB
Mongo 是一个基于分布式文件存储的数据库,由 C++ 编写,旨在为 Web 应用提供可拓展的高性能数据存储解决方案.它介于关系数据库和非关系数据库之间,在非关系数据库中最像关系数据库.
首先在 pycharm 中安装 pymongo 库
这里写图片描述
首先每次使用数据库前要打开 MongoDB 服务,即在文件目录下分别执行 mongod , mongo 命令
且关闭数据库最好用 Ctrl+C 再推出 cmd
输入 Label 后,建立一个mongodb
测试连接后就可以使用了

MongoDB文件储存格式是 json 所以一般都存字典

  • 创建数据库,表

测试代码:

import requests
import pymongo
import time

dic={'name':111,'id':222}
client=pymongo.MongoClient()
testdb=client['TEST_DB']
testsheet=testdb['TEST_SHEET']
testsheet.insert_one(dic)

MongoDB 是惰性的,意思就是在真正写入数据前,都不会创建数据库
这里写图片描述

  • 查询操作
import requests
import pymongo
import time

dic={'name':111,'score':222}
dic1={'name':1111,'score':2222}
client=pymongo.MongoClient() # MongoClient('localhost':27017)
testdb=client['TEST_DB'] # 新建数据库 类似字典
testsheet=testdb['TEST_SHEET'] # 新建表
testsheet.insert_one(dic)
testsheet.insert_one(dic1)

# 查询修改.find()
for item in testsheet.find():
    print(item)
    # update 方法 $set
    testsheet.update_one({'name':item['name']},{'$set':{'name':item['name']+5}})
#查找score大于2220的
for item in testsheet.find({'score':{'$gt':2220}}):
    print(item['name'])
#output
{'_id': ObjectId('5b12cd10fdf462257827248e'), 'name': 116, 'id': 222}
{'_id': ObjectId('5b12d5d1fdf46223ec431bde'), 'name': 116, 'score': 222}
{'_id': ObjectId('5b12d5d1fdf46223ec431bdf'), 'name': 1116, 'score': 2222}
{'_id': ObjectId('5b12d6d5fdf46213b4485dda'), 'name': 111, 'score': 222}
{'_id': ObjectId('5b12d6d5fdf46213b4485ddb'), 'name': 1111, 'score': 2222}
1121
1116

其中

testsheet.update_one({'name':item['name']},{'$set':{'name':item['name']+5}})
第一个参数是 {'name':item['name']} 为更新的查询条件,对应’name’字段,
第二个参数是{'$set':{'name':item['name']+5}}) $set是MongoDB的一个修改器,用于指定一个键并更新键值.,若不存在则新建.此外还有$inc,$unset,$push等 ,分别用于数字的增减,删除键,添加数组类型
这里写图片描述


推荐阅读
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文探讨了在通过 API 端点调用时,使用猫鼬(Mongoose)的 findOne 方法总是返回 null 的问题,并提供了详细的解决方案和建议。 ... [详细]
  • 本文详细介绍了Python编程语言的学习路径,涵盖基础语法、常用组件、开发工具、数据库管理、Web服务开发、大数据分析、人工智能、爬虫开发及办公自动化等多个方向。通过系统化的学习计划,帮助初学者快速掌握Python的核心技能。 ... [详细]
  • 本文详细介绍了Flask项目的配置方法,包括DEBUG模式的设置和配置文件的使用,帮助开发者更好地理解和应用Flask框架。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ... [详细]
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 本文探讨了2012年4月期间,淘宝在技术架构上的关键数据和发展历程。涵盖了从早期PHP到Java的转型,以及在分布式计算、存储和网络流量管理方面的创新。 ... [详细]
  • 本文介绍了SVD(奇异值分解)和QR分解的基本原理及其在Python中的实现方法。通过具体代码示例,展示了如何使用这两种矩阵分解技术处理图像数据和计算特征值。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 利用 Jest 和 Supertest 实现接口测试的全面指南
    本文深入探讨了如何使用 Jest 和 Supertest 进行接口测试,通过实际案例详细解析了测试环境的搭建、测试用例的编写以及异步测试的处理方法。 ... [详细]
author-avatar
黄岳雯淑怡彦璇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有