Python调用MongoDB使用心得

MongoDB在python中的使用 MongoDB在python中的使用 文章目录MongoDB在python中的使用安装配置文件客户端Pychar插件Python链接Mongodb基本使用基本概念插入数据ObjectID文档查询数据统计排序分页更新删除 mongoDB是由C++编写的分布式文档数据库。 内部使用类似于Json的bson格式。 中文手册https://www.w3cschool.cn/mongodb/ ... 阅读详情

本文是一个Python 使用MongoDB的简单教程,将使用pymongo对MongoDB进行的各种操作进行了简单的汇总,我们进行了简单整理,使用Python的同学可以看一看。

下载相应平台的版本,解压即可。为方便使用,将bin路径添加到系统path环境变量里。其中mongod是服务器,mongo是客户shell,然后创建数据文件目录:在c盘下创建data文件夹,里面创建db文件夹。

基本使用:

安装对应语言的Driver,Python 安装 pymongo

1 $ easy_install pymongo

使用方法总结,摘自官方教程

创建连接

1 >>> import pymongo
2 >>> connection=pymongo.Connection('localhost',27017)

切换数据库

1 >>> db = connection.test_database

获取collection

1 >>> collection = db.test_collection

db和collection都是延时创建的,在添加Document时才真正创建

文档添加,_id自动创建

1 >>> import datetime
2 >>> post = {"author": "Mike",
3 ...         "text": "My first blog post!",
4 ...         "tags": ["mongodb", "python", "pymongo"],
5 ...         "date": datetime.datetime.utcnow()}
6 >>> posts = db.posts
7 >>> posts.insert(post)
8 ObjectId('...')

批量插入

01 >>> new_posts = [{"author": "Mike",
02 ...               "text": "Another post!",
03 ...               "tags": ["bulk", "insert"],
04 ...               "date": datetime.datetime(2009, 11, 12, 11, 14)},
05 ...              {"author": "Eliot",
06 ...               "title": "MongoDB is fun",
07 ...               "text": "and pretty easy too!",
08 ...               "date": datetime.datetime(2009, 11, 10, 10, 45)}]
09 >>> posts.insert(new_posts)
10 [ObjectId('...'), ObjectId('...')]

获取所有collection(相当于SQL的show tables)

1 >>> db.collection_names()
2 [u'posts', u'system.indexes']

获取单个文档

1 >>> posts.find_one()
2 {u'date': datetime.datetime(...), u'text': u'My first blog post!', u'_id': ObjectId('...'), u'author': u'Mike', u'tags': [u'mongodb', u'python', u'pymongo']}

查询多个文档

1 >> for post in posts.find():
2 ...   post
3 ...
4 {u'date': datetime.datetime(...), u'text': u'My first blog post!', u'_id': ObjectId('...'), u'author': u'Mike', u'tags': [u'mongodb', u'python', u'pymongo']}
5 {u'date': datetime.datetime(2009, 11, 12, 11, 14), u'text': u'Another post!', u'_id': ObjectId('...'), u'author': u'Mike', u'tags': [u'bulk', u'insert']}
6 {u'date': datetime.datetime(2009, 11, 10, 10, 45), u'text': u'and pretty easy too!', u'_id': ObjectId('...'), u'author': u'Eliot', u'title': u'MongoDB is fun'}

加条件的查询

1 >>> posts.find_one({"author": "Mike"})

高级查询

1 >>> posts.find({"date": {"$lt": d}}).sort("author")

统计数量

1 >>> posts.count()
2 3

加索引

1 >>> from pymongo import ASCENDING, DESCENDING
2 >>> posts.create_index([("date", DESCENDING), ("author", ASCENDING)])
3 u'date_-1_author_1'

查看查询语句的性能

1 >>> posts.find({"date": {"$lt": d}}).sort("author").explain()["cursor"]
2 u'BtreeCursor date_-1_author_1'
3 >>> posts.find({"date": {"$lt": d}}).sort("author").explain()["nscanned"]
4 2

附自己总结的一点小心得,仅供参考

缺点

  • 不是全盘取代传统数据库(NoSQLFan:是否能取代需要看应用场景)
  • 不支持复杂事务(NoSQLFan:MongoDB只支持对单个文档的原子操作)
  • 文档中的整个树,不易搜索,4MB限制?(NoSQLFan:1.8版本已经修改为16M)

特点(NoSQLFan:作者在这里列举的很多只是一些表层的特点):

  • 文档型数据库,表结构可以内嵌
  • 没有模式,避免空字段开销(Schema Free)
  • 分布式支持
  • 查询支持正则
  • 动态扩展架构
  • 32位的版本最多只能存储2.5GB的数据(NoSQLFan:最大文件尺寸为2G,生产环境推荐64位)

名词对应

  • 一个数据项叫做 Document(NoSQLFan:对应MySQL中的单条记录)
  • 一个文档嵌入另一个文档(comment 嵌入 post)叫做 Embed
  • 储存一系列文档的地方叫做 Collections(NoSQLFan:对应MySQL中的表)
  • 表间关联,叫做 Reference

原文来自:http://blog.nosqlfan.com/html/2989.html

用Python操作MongoDB,看这一篇就够了 MongoDB 是一个基于分布式存储的数据库,由 C++ 语言编写的NoSQL非关系数据库。非关系型数据库NoSQL,即Not Only SQL,意即“不仅仅是SQL”,通常指数据以对象的... 阅读详情

相关推荐

RK3588 Linux启动优化至亚秒级全链路剖析

本文深入探讨RK3588平台Linux系统启动加速技术,涵盖从BL1/ATF安全固件、U-Boot剪裁到内核精简化等全链路优化方案,实现从上电到用户脚本800ms内完成的实战经验。​​文末提供完整解决方案获取方式​​。由于在 ARMv6 之后引入了 TrustZone 模块, 目前市面上 ARMv7 和 ARMv8 之后的系统都会包含了该模块, 这个模块由 BL1 启动, 且在 ATF(ARM Trust Firmware) 固件中, 既安全世界中引导到 BL33 (UBOOT)的系统。

韩若明溪 1777

python学习心得(五):mongodb数据库使用

任何爬虫爬取的数据都需要存储,除了使用pandas和csv模块存为本地文件,也可以用数据库完成存储。 根据橡皮擦老师的例子,mongodb数据库存储数据,对应的python模块是pymongo 使用例子,在scrapy框架下,一个典型的pipeline.py文件如下 使用前期,操作本地数据库,数据库是自启动的,并且已经建立了一个db,名称为sun,建立了用户/密码:dba/dba import t...

weixin_40983190的博客 409

Notion访问卡顿?一键优化DNS与Hosts提升加载速度

本文针对Notion访问卡顿问题,提供了两种核心优化方案:修改Hosts文件与配置DNS。详细解析了卡顿根源在于网络链路,并手把手指导用户在Windows、Mac、iOS及Android设备上实施优化,旨在通过替换为更优线路,显著提升Notion的页面加载与同步速度。

fff88的博客 1195

Python操作MongoDB - 常用操作

可以下载使用客户端:MangoDB Compass。Python操作MongoDB,看这一篇就够。

weixin_44691253的博客 2801

Information Fusion投稿避坑指南:从初稿到返修的完整流程解析(附模板下载)

本文详细解析了向Information Fusion投稿的全流程,从初稿准备到返修策略,涵盖了22个关键细节。特别强调了投稿前的隐形门槛、LaTeX模板的字体陷阱、图表规范要求以及返修回复的进阶技巧,帮助研究者避免常见错误,提升稿件接受率。附有实用模板下载,助力学术写作效率提升。

tgb34567890的博客 1420

TP4054充电电路发热严重?手把手教你调整电阻值降低温度(附实测数据)

本文针对TP4054锂电池充电电路发热严重的问题,提供了详细的排错与解决方案。通过分析发热原理,指出核心在于PROG引脚电阻值设定,并手把手指导如何计算和选择正确的电阻以降低充电电流与温度。文末附有不同电阻下的实测温度与性能数据,为电子爱好者和工程师提供了实用的调试参考。

p4q5r6s7t的博客 406

python使用mongoDB

就是说,数据库创建后要创建集合(数据表)并插入一个文档(记录),数据库才会真正创建。就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。方法来删除一个文档,该方法第一个参数为查询对象,指定要删除哪些数据。该方法第一个参数为查询的条件,第二个参数为要修改的字段。该方法第一个参数为查询的条件,第二个参数为要修改的字段。方法来删除多个文档,该方法第一个参数为查询对象,指定要删除哪些数据。方法第一个参数为要排序的字段,第二个字段指定排序规则,方法可以查询集合中的所有数据,类似 SQL 中的。..

weixin_43788986的博客 2068

ICV:Metal Fill Insertion流程

如果不想删除先前加的metal fill,可以使用signoff_create_metal_fill -mode add命令,当使用这个mode后,工具不会fix density问题,哪怕设置了signoff.create_metal_fill.fix_density_errors,设置这个mode后可以使用以下option控制metal fill 的插入。默认情况下,signoff_create_metal_fill是会删掉已经加进去的metal/via fill再重新加的。

m0_61544122的博客 1132

使用 Python 操作 MongoDB

我们也可以使用 limit() 方法限制查询结果的数量,使用 sort() 方法对查询结果进行排序,使用 count() 方法获取查询结果的数量。在上面的代码中,我们使用 delete_one() 方法删除 customers 集合中 name 字段为 John 的文档,并使用 deleted_count 属性获取删除的文档数量。在上面的代码中,我们使用 find() 方法查询 customers 集合中 name 字段为 John 的文档,并使用 for 循环遍历查询结果。

weixin_47831992的博客 3265

C语言读取CSV文件的方法1

逗号分隔值文件格式(CSV),以纯文本形式存储表格数据,它是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。本文介绍利用C语言标准库中的一个字符串处理函数 strtok()来对CSV文件内容进行读取的基本方法

白马负金羁 1万+

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】

PyQt5数据库开发3 6.1 QSqlQuery实操案例【多图详解】,本文有点长,主要每一个步骤都有对应的图文教程!!!

qq_53317005的博客 2962

python mongodb_Python调用MongoDB使用心得

本文是一个Python 使用MongoDB的简单教程,将使用pymongo对MongoDB进行的各种操作进行了简单的汇总,我们进行了简单整理,使用Python的同学可以看一看。下载相应平台的版本,解压即可。为方便使用,将bin路径添加到系统path环境变量里。其中mongod是服务器,mongo是客户shell,然后创建数据文件目录:在c盘下创建data文件夹,里面创建db文件夹。基本使用: 安装...

weixin_39884144的博客 147

AI幻觉缓解的成本效益分析:投入产出比优化

在当今AI技术飞速发展的时代,AI幻觉成为了一个不容忽视的问题。AI幻觉就像是AI在“做梦”,会给出一些不符合实际或者错误的答案。我们这篇文章的目的就是要分析缓解AI幻觉所需要投入的成本和能够获得的效益,看看怎么能让投入和产出的比例达到最优。范围涵盖了常见的AI应用场景,比如智能客服、自动驾驶等领域。接下来,我们会先介绍一些和AI幻觉、成本效益分析相关的术语。然后用一个有趣的故事引出核心概念,解释什么是AI幻觉、成本效益分析等,以及它们之间的关系。

AI 原生应用开发的博客 935

MongoDB安装、使用 以及 python 中MongoDB的调用

安装: Windows 平台安装 MongoDB:http://www.runoob.com/mongodb/mongodb-window-install.html  使用: 成功启动MongoDB后,再打开一个命令行窗口输入mongo,启动MongoDB客户端,就可以进行数据库操作了。 输入help可以看到基本操作命令: show dbs:显示数据库列表  show collect...

ChihkAnchor的博客 580

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

使用Python操作MongoDB

大家好,在当今数字化时代,数据的管理和处理变得越来越重要。MongoDB 作为一种强大的 NoSQL 数据库,为我们提供了高效、灵活的数据存储和查询方式。而 Python 作为一种功能强大的编程语言,拥有丰富的库和工具,能够方便地与 MongoDB 进行交互。在本文中,我们将探讨如何使用 Python 来操作 MongoDB 数据库,包括连接数据库、插入数据、查询数据、更新数据和删除数据等操作,希望能给大家带来一些帮助。

若不知道要驶向哪个码头,那么任何风都不会是顺风。 4694

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

python中mongoDB的使用

Python连接MongoDB服务 MongoDB是由C++语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似JSON对象,它的字段值可以包含其他文档、数组及文档数组,非常灵活。在这一节中,我们就来看看Python 3下MongoDB的存储操作。 安装MongoDB 1、打开官网:MongoDB官网 2、选择好版本,我的是windows,选择安装包模式安装,版本就选择最新版(看好了,别选错了),点击下载就好了,下一个页面的信息随便填写就行 3、文件有点大,估计要400

飞得更高肥尾沙鼠 1867

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【MongoDB】Python安装和使用MongoDB

Python安装和使用MongoDB注意事项安装是否安装成功?基本使用注意事项1. 导入包2. 连接数据库3.查看所有数据库4. 获取数据库&集合&文档5. 更新6. 插入7. 删 安装 之前在windows下安装了mongodb,为什么还要装? 因为这是为了在python(PyCharm IDE)中使用mongodb 三种安装方式: 在windows终端下输入: pip i...

HFZeng的博客 3950

python使用pymongo读写mongodb

转载请注明出处:python使用pymongo读写mongodb 准备工作 在开始之前,请确保已经安装好了MongoDB并启动了其服务,并且安装好了Python的PyMongo库。 PyMongo介绍 Python 要连接 MongoDB 需要 MongoDB 驱动,这里我们使用 PyMongo 驱动来连接。 官方文档 http://api.mongodb.com/python/current/a...

直到世界的尽头 7555

MongoDB的安装及python的调用

MongoDB入门级笔记

seaeress的博客 922

java调用python执行导出mongodb数据为excel表格

主要是工作中需要使用java去调用python执行导出mongodb数据为excel表格的需求 所以在完成中遇到很多坑做的一个自我总结和记录 一.python代码部分 python的代码部分主要封装了mongodb数据库的端口 用户密码校验 还有导出为excel表格的方法 并保存py文件的位置提供给java调用 直接上代码:#!/usr/bin/env python # -*- codin...

pc915968220的博客 829
上一篇: 如何处理海量数据(转)
下一篇: python中的BeautifulSoup模块
CsharpGame
博客等级 码龄21年 11粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值