Python学习笔记_03:简单操作MongoDB数据库
目录
1. 插入文档
# -*- coding: UTF-8 -*-
import datetime
from pymongo import MongoClient
client = MongoClient() db = client.book user = {"name": "daming12",
"pwd": "asdf33",
"tags": ["mongodb11", "python11", "pymongo11"],
"date": datetime.datetime.utcnow()} users = db.user
user_id = users.insert_one(user).inserted_id
print ("user id is ", user_id)
打开MongoBooster查看book数据库中user集合中所有文档信息:

执行插入操作后,控制台输出信息:

2. 查询文档
查询出当前数据库中所包含的所有集合:
# -*- coding: UTF-8 -*-
import datetime
from pymongo import MongoClient
client = MongoClient() db = client.book
cur_collection = db.collection_names(include_system_collections=False) print("cur_collection is :", cur_collection)
控制台输出信息:

查询数据库集合中具体文档信息:
# -*- coding: UTF-8 -*-
import datetime
from pymongo import MongoClient
client = MongoClient() db = client.book
users = db.user
#查询全部
for i in users.find():
print(i)
#查询name=liuzhen的
for i in users.find({"name":"liuzhen"}):
print(i)
# 查询name=daming的
print(users.find_one({"name":"daming"}))
控制台输出信息:

3. 更新文档
更新操作语法模板:
Collection.update(
<query>, #查询条件
<update>, #update的对象和一些更新的操作符 {
upsert: <boolean>, #如果不存在update的记录,是否插入
multi: <boolean>, #可选,mongodb 默认是false,只更新找到的第一条记录
writeConcern: <document> #可选,抛出异常的级别。 }
)
具体更新操作示例:
# -*- coding: UTF-8 -*-
import datetime
from pymongo import MongoClient
client = MongoClient() db = client.book
users = db.user print users.find_one({"name":"liuzhen"})
users.update({"name":"liuzhen"},{'$set':{"pwd":"98765432d1"}})
print users.find_one({"name":"liuzhen"})
控制台输出信息:

4. 删除文档
删除操作语句模板:
Collection.remove(
<query>, #(可选)删除的文档的条件 {
justOne: <boolean>, #(可选)如果设为 true 或 1,则只删除一个文档
writeConcern: <document> #(可选)抛出异常的级别 }
)
具体删除操作示例:
# -*- coding: UTF-8 -*-
import datetime
from pymongo import MongoClient
client = MongoClient() db = client.book
users = db.user print "删除前,集合user中所有文档信息:"
#查询全部
for i in users.find():
print(i)
#删除name=lisi的全部记录
users.remove({'name': 'daming'}) #删除name=lisi的某个id的记录
id = users.find_one({"name":"liuzhen"})["_id"]
users.remove(id)
print "删除后,集合user中所有文档信息:"
#查询全部
for i in users.find():
print(i)
#删除集合里的所有记录
#db.users.remove()
控制台输出信息:

参考资料:
Python学习笔记_03:简单操作MongoDB数据库的更多相关文章
- C# Asp.net中简单操作MongoDB数据库(二)
C# Asp.net中简单操作MongoDB数据库(一) , mongodb数据库连接可以回顾上面的篇幅. 1.model类: public class BaseEntity { /// < ...
- C# Asp.net中简单操作MongoDB数据库(一)
需要引用MongoDB.Driver.dll.MongoDB.Driver.core.dll.MongoDB.Bson.dll三个dll. 1.数据库连接: public class MongoDb ...
- Mongodb学习笔记五(C#操作mongodb)
mongodb c# driver(驱动)介绍 目前基于C#的mongodb驱动有两种,分别是官方驱动(下载地址)和samus驱动(下载地址). 本次我们只演示官方驱动的使用方法. 官方驱动文档查看 ...
- Python学习笔记:sqlite3(sqlite数据库操作)
对于数据库的操作,Python中可以通过下载一些对应的三方插件和对应的数据库来实现数据库的操作,但是这样不免使得Python程序变得更加复杂了.如果只是想要使用数据库,又不想下载一些不必要的插件和辅助 ...
- python学习笔记(15)pymysql数据库操作
pymysql数据库操作 1.什么是PyMySQL 为了使python连接上数据库,你需要一个驱动,这个驱动是用于与数据库交互的库. PyMySQL : 这是一个使Python连接到MySQL的库,它 ...
- Python学习笔记(2):数据库访问
本来打算继续用Access的,但费了非常大的劲,还是没有搞定.回过头,发现使用sqlite,简单到令人发指.干脆,把C#的CommonCode往这边迁移,先把AccessDB搬过来再说. 类结构和C# ...
- Python学习笔记2-flask-sqlalchemy 简单笔记
flask-sqlalchemy 简单笔记 字数 阅读 评论 喜欢 flask-sqlalchemy SQLAlchemy已经成为了python世界里面orm的标准,flask是一个轻巧的web框架, ...
- python学习笔记---文件的操作
数据的保存: 1.内存:常用的变量2.文件:文本内容,二进制的文件内容3.数据库: 读文件:1.要读取的文件路径一定要存在.2.打开存在的文件:open函数 参数1:文件的路径,相对的或者是绝对 ...
- python学习笔记十一:操作mysql
一.安装MySQL-python # yum install -y MySQL-python 二.打开数据库连接 #!/usr/bin/python import MySQLdb conn = MyS ...
随机推荐
- poj 3041(最大匹配问题)
http://poj.org/problem?id=3041 Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions ...
- Java List集合冒泡法排序的两种实现
冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已 ...
- Java_集合操作_将元素插入List的指定位置
package test; import java.util.ArrayList; import java.util.List; public class test { public static v ...
- Java中使用正则表达式获取网页中所有图片的路径
public static List<String> getImageSrc(String htmlCode) { List<String> imageSrcList = ne ...
- 开源项目PullToRefresh详解(三)——PullToRefreshScrollView
和前几篇文章一样,这里还是先设置布局文件,然后找到这个控件.只不过这里要简单很多. 1.布局文件 <?xml version="1.0" encoding="utf ...
- perf使用示例1
perf使用示例1 perf - Performance analysis tools for Linux Performance counters for Linux are a new kerne ...
- protobuf语法简介2
protobuf语法简介2 1.optional的字段和默认值 如上所述,消息描述中的一个元素可以被标记为"可选的"(optional).一个格式良好的消息可以包含0个或一个opt ...
- Go语言之进阶篇 netcat工具的使用
一.netcat工具的使用 1.先安装netcat软件,再配置环境变量 2.tcp服务器代码 示例: package main import ( "fmt" "net&q ...
- HTML中的转义字符 (转)
HTML中<, >,&等有特殊含义,(前两个字符用于链接签,&用于转义),不能直接使用.使用这三个字符时,应使用它们的转义序列,如下所示: & 或 & &a ...
- pair练习
/* 编写程序读入一些列string和int型数据,将每一组存储在一个pair对象中, 然后将这些pair对象存储在vector容器里. */ #include <iostream> #i ...