python连接mongodb进行查询_Python中的MongoDB基本操作:连接、查询实例

这篇文章主要介绍了Python中的MongoDB基本操作:连接、查询实例,本文直接给出操作示例代码,需要的朋友可以参考下

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可护展的高性能数据存储解决方案。它的特点是高性能、易部署、易使用,存储数据非常方便。

MongoDB 简单使用

联接数据库

代码如下:

In : import pymongo

In : from pymongo import Connection

In : connection = Connection(‘192.168.1.3‘, 27017) //创建联接

Connection 相关参数

代码如下:

Connection(]]]]]]]])

数据库操作

代码如下:

In : c.database_names() //列出所有数据库名称

Out:

In : c.server_info() //查看服务器相关信息

Out:

{u‘bits‘: 64,

u‘gitVersion‘: u‘nogitversion‘,

u‘ok‘: 1.0,

u‘sysInfo‘: u‘Linux yellow 2.6.24-27-server #1 SMP Fri Mar 12 01:23:09 UTC 2010 x86_64 BOOST_LIB_VERSION=1_40‘,

u‘version‘: u‘1.2.2‘}

In : db = c //选择数据库

In : db.collection_names() //列出当前数据库中所有集合名称

Out:

In : db.connection //查看联接信息

Out: Connection(‘192.168.1.3‘, 27017)

In : db.create_collection(‘test_abeen‘) //创建新集合

Out: Collection(Database(Connection(‘192.168.1.3‘, 27017), u‘test‘), u‘test_abeen‘)

In : db.last_status() //查看上次操作状态

Out: {u‘err‘: None, u‘n‘: 0, u‘ok‘: 1.0}

In : db.name //查看当前数据库名称

Out: u‘test‘

In : db.profiling_info() //查看配置信息

Out:

In : db.profiling_level()

Out: 0.0

集合操作

代码如下:

In : db.collection_names() //查看当前数据库所有集合名称

Out:

In : c = db.test_abeen //选择集合

In : c.name //查看当前集合名称

Out: u‘test_abeen‘

In : c.full_name //查看当前集合全名

Out: u‘test.test_abeen‘

In : c.database //查看当前集合数据库相关信息

Out: Database(Connection(‘192.168.1.3‘, 27017), u‘test‘)

In : post = {"author":"Mike","text":"this is a test by abeen"}

In : posts = db.posts

In : posts.insert(post) //向数据库集合插入文档,默认创建集合

Out: ObjectId(‘4c358492421aa91e70000000‘)

In : db.collection_names() //显示所有集合名称

Out:

In : posts.find_one() //从集合查找信息

Out:

{u‘_id‘: ObjectId(‘4c358492421aa91e70000000‘),

u‘author‘: u‘Mike‘,

u‘text‘: u‘this is a test by abeen‘}

In : p.update({"author":"Mike"},{"$set":{"author":"abeen","text":"this is a test by abeen shan shan"}})//更新集合文档信息

In : list(p.find())

Out:

In : list(posts.find())

Out:

In : posts.remove({"a":"abeen"}) //删除符合条件的文档

In : list(posts.find())

Out:

In : db.collection_names()

Out:

In : db.drop_collection("doc_abeen") //删除集合

In : db.collection_names()

Out:

代码

代码如下:

In : result = db.posts.find({"a":"aa"})//查找

In : type(result)

Out:

In : list(result)

Out:

find格式

代码如下:

find(]]]]]]]]]])

代码

代码如下:

In : db.posts.count()//当前集合文档数

Out: 3

In : type(db.posts)

Out:

In : posts.rename(‘test_abeen‘)//重命名当前集合

In : db.collection_names()

Out:

In : for post in c.find({"a":"aa"}).sort("a"): //查询并排序列

post

Out: {u‘_id‘: ObjectId(‘4c358ad4421aa91e70000002‘), u‘a‘: u‘aa‘, u‘b‘: u‘bb‘}

Out: {u‘_id‘: ObjectId(‘4c358ad9421aa91e70000003‘), u‘a‘: u‘aa‘, u‘b‘: u‘bb‘}

代码如下:

> db.foo.insert( { x : 1, y : 1 } )

> db.foo.insert( { x : 2, y : "string" } )

> db.foo.insert( { x : 3, y : null } )

> db.foo.insert( { x : 4 } )

// Query #1 y 为null或不存在

> db.foo.find( { "y" : null } )

{ "_id" : ObjectId("4dc1975312c677fc83b5629f"), "x" : 3, "y" : null }

{ "_id" : ObjectId("4dc1975a12c677fc83b562a0"), "x" : 4 }

// Query #2 y为null的值

> db.foo.find( { "y" : { 0 : 10 } } )

{ "_id" : ObjectId("4dc1975312c677fc83b5629f"), "x" : 3, "y" : null }

// Query #3 y不存在的结果

> db.foo.find( { "y" : { $exists : false } } )

{ "_id" : ObjectId("4dc1975a12c677fc83b562a0"), "x" : 4 }

免责申明:本栏目所发资料信息部分来自网络,仅供大家学习、交流。我们尊重原创作者和单位,支持正版。若本文侵犯了您的权益,请直接点击提交联系我们,立刻删除!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

D P- 免费馅饼

题目 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以ga…

android+录像中截图软件下载,录屏截图大师app

录屏截图大师app是一款专业录屏软件,不少用户可能会有使用手机录屏的需求,尤其是在手机内置没有录屏功能的时候,这款软件就非常值得大家考虑,支持自定义设置录屏的大小和画质,还没有水印,还支持后期的简单编…

python随机函数笔记_Python笔记__random

random模块提供了随机数相关的一些函数,所有函数都绑定在一个random.Random类的实例上,所以,你可以直接用模块级的函数random.xxx(),也可以random.Random().xxx()。random.random(): 随机生成一个[0.0, 1.0)范围内的浮点数。是下面…

一加桌面3.0 android8,一加手机XRemix6.0安卓8.1.0Beta2.0定制本地化增强适配归属农历等...

制作者:moonlight-roms基于版本:remix最新安卓8.1.0代码适合机型:一加手机X双网版/全网通版/E1001/E1003等/onyx注意事项:1.开机后语言设置:Settings-system-languageandinput-添加一个中文需要并拖动到第一行设置为默…

震惊!Fibonacci Again

题目 There are another kind of Fibonacci numbers: F(0) 7, F(1) 11, F(n) F(n-1) F(n-2) (n>2). Input Input consists of a sequence of lines, each containing an integer n. (n < 1,000,000). Output Print the word “yes” if 3 divide evenly into …

jumpserver 使用教程_Jumpserver之快速入门

一&#xff0c;系统设置1.1基本设置修改 url 的"localhost"为你的实际 url 地址, 否则邮件收到的地址将为"localhost" 也无法创建新用户1.2邮件设置1.3终端设置保持默认设置即可1.4安全设置根据需要设置二.用户管理2.1创建jumpserver用户#点击页面左侧&quo…

华为鸿蒙手机和电视通话,鸿蒙智慧屏首秀:逾10万人预定,电视视频通话功能强大...

原标题&#xff1a;鸿蒙智慧屏首秀&#xff1a;逾10万人预定&#xff0c;电视视频通话功能强大上周五&#xff0c;大家期待已经的华为开发者大会正式召开&#xff0c;华为鸿蒙系统在这一天对外发布。历时数年&#xff0c;经过几千人的研发&#xff0c;终于正式落地。曾经&#…

震惊! Leftmost Digit

题目 Given a positive integer N, you should output the leftmost digit of N^N. Input The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. Each test case contain…

ladp3 获取属性_Ldap3库使用方法(四)

#!/usr/bin/env python# -*- coding: utf-8 -*-import jsonfrom ldap3 import ALL_ATTRIBUTES# 注意&#xff1a;ldap3库如果要使用tls(安全连接)&#xff0c;需要ad服务先安装并配置好证书服务&#xff0c;才能通过tls连接&#xff0c;否则连接测试时会报LDAPSocketOpenError(…

两文本一图片android,Android富文本编辑器(二):图文混排以及图片上传处理

对于一个富文本编辑器来说&#xff0c;图文混排是最基本的功能。而从上一篇文章中我们知道图文混排需要使用ImageSpan。下面这段代码摘自我的RichEditText源码&#xff1a;/*** 添加图片* param filePath 图片文件路径*/public void addImage(String filePath) {SpannableStrin…

qt添加菜单纯代码_Qt Creator 插件开发(3):添加菜单项

本章我们将学习如何向 Qt Creator 的菜单栏添加内容。在上一章插件的基础之上&#xff0c;我们将尝试开发一个比较正式的插件——在菜单栏中可以看到&#xff0c;并且可以相应用户动作等。在我们开始之前&#xff0c;我们先来看看 Qt Creator 已有的菜单&#xff1a;Qt Creator…

android添加hidl,android hidl

1、定义.hal接口文件&#xff0c;如&#xff1a;在vendor/sprd/interface中新建目录hello&#xff0c;其中定义好hidl接口&#xff0c;如&#xff1a;1 package [email protected]1.0;23 interfaceIHello {45 helloWorld(string name) generates (stringresult);67 };2、利用hi…

震惊! Rightmost Digit 快速幂解决

题目 Given a positive integer N, you should output the most right digit of N^N. Input The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. Each test case conta…

rrpp协议如何修改_RRPP协议

产生背景在网络规划和实际组网应用中&#xff0c;大多采用环网来提供高可靠性。环网技术简单来说&#xff0c;就是将一些网络设备通过环的形状连接到一起&#xff0c;实现相互通信的一种技术。为了避免环网中产生广播风暴&#xff0c;最初采用了已被普遍应用的STP协议环路保护机…

android handler同步,android解决:使用多线程和Handler同步更新UI

如果运行时&#xff0c;可以看到滚动条由条慢慢变短&#xff0c;则说明程序成功了。截图如下&#xff0c;建议选择大点的文件做测试。main.xmlxmlns:android"http://schemas.android.com/apk/res/android"android:layout_height"wrap_content" android:id&…

hashmap hash冲突怎么解决_HashMap原理及冲突之简谈

了解HashMap原理对于日后的缓存机制多少有些认识。在网络中也有很多方面的帖子&#xff0c;但是很多都是轻描淡写&#xff0c;很少有把握的比较准确的信息&#xff0c;在这里试着不妨说解一二。对于HashMap主要以键值(key-value)的方式来体现&#xff0c;笼统的说就是采用key值…

html5把六张图片做成立方体,HTML5绘制在立方体上的几何曲线图形

CSS语言&#xff1a;CSSSCSS确定body {background: #222;width: 100vw;height: 100vh;overflow: hidden;-webkit-filter: blur(1px);filter: blur(1px);box-sizing: border-box;-webkit-perspective: 3000px;perspective: 3000px;}.cube {position: absolute;width: 250px;heig…

c语言中闰年 日期 天数 统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形

常识&#xff1a; 1、3、5、7、8、10、12月份&#xff0c;每个月31天。2月闰年有29天&#xff0c;非闰年28天其他月份&#xff0c;每月30天 闰年&#xff1a;一年有365天&#xff0c;闰年有366天&#xff0c;所谓闰年&#xff0c;即能被4整除且不能被100整除的年份&#xff0c…

java有啥区别 jsp_Java与JSP有什么区别

Java与JSP的区别有&#xff1a;1、Java是面向对象编程语言&#xff0c;而JSP是一个建立在Java基础上用于开发动态内容的web页面技术&#xff1b;2、Java负责逻辑业务处理&#xff0c;而JSP负责页面展现等等。【推荐课程&#xff1a;Java教程】JAVA是一种编程语言&#xff0c;可…

c++ stl 容器 迭代器 stl用法示例

1.基本概念 1.1容器概述 顺序容器 vector, deque,list关联容器 set, multiset, map, multimap容器适配器 stack, queue, priority_queue 1.1.1迭代器 用于指向顺序容器和关联容器中的元素迭代器用法和指针类似 有const 和非 const两种通过迭代器可以读取它指向的元素通过非…