'''查找需要修改的数据'''
result = student.find({"id":{"$gte":20180901,"$lt":20180905}},
no_cursor_timeout=True, batch_size=10)
for a in result:
student.update_one(a, {"$set": {"id": bson.int64.Int64(a["id"])}})
#10.20.66.106
client = MongoClient('10.20.4.79', 27017)
#client = MongoClient('10.20.66.106', 27017)
db_name = 'ta'
db = client[db_name]
假设mongodb数据库中school 集合中
对比项 mongoDB mysql oracle
表 集合list 二维表
表的一行数据 文档document 一条记录
表字段 键key 字段field
字段值 值value ...
from pymongo import MongoClient
from bson.objectid import ObjectId
from datetime import datetime
client = MongoClient()
print(client.database_names())
如果输出有数据库的名字['admin'...
在工作中遇到这样一个问题,需要对上百个mdb文件进行数据统计,mdb文件实际上就是access数据库,使用微软的access工具即可打开。
但是我电脑上没有安装access数据库,而且官方的安装包还要付费,下载破解版费时费力还不一定能成功,于是便想到了万能的Python。
经过一番搜索,发现Python有一个第三方库“pyodbc”可以解析access的数据库。
更妙的是还能与pandas联动,将数据库的表直接转为dataframe格式,这样就大大简化了我后续统计操作的步骤。
那么首先需要安装,直接用p
数据库的信息是存储在集合中。它们使用了系统的命名空间:
dbname.system.*
在MongoDB数据库中名字空间 .system.* 是包含多种系统信息的特殊集合(Collection),如下:
对于修改系统集合中的对象有如下限制。
在{{system.indexes}}插入数据,可以创建索引。但除此之外该表信息是不可变的(特殊的drop index命令将自动更新相关信息)。
{{system.users}}是可修改的。 {{system.profile}}是可删除的。
MongoDB 数据
from bson.objectid import ObjectId
# 引入后正常查找就行了
query = {"_id": ObjectId("612df1252c9df273cbedc50a")}
# 自己自定义id进行查询.
query = {"_id": "612df1252c9df273
post = {"author": "Mike",
"text": "My first blog post!",
"tags": ["mongodb", "python", "pymongo"]}
collection.insert_one(post)
# 插入多条数据
new_posts = [{"author": "Mike",
"text": "Another post!",
"tags": ["bulk", "insert"],
"date": datetime.datetime(2009, 11, 12, 11, 14)},
{"author": "Eliot",
"title": "MongoDB is fun",
"text": "and pretty easy too!",
"date": datetime.datetime(2009, 11, 10, 10, 45)}]
collection.insert_many(new_posts)
查询数据:
```python
# 查询所有数据
for post in collection.find():
print(post)
# 条件查询
query = {"author": "Mike"}
for post in collection.find(query):
print(post)
# 正则表达式查询
query = {"author": {"$regex": "^M.*"}}
for post in collection.find(query):
print(post)
修改数据:
```python
# 更新一条数据
result = collection.update_one(
{"author": "Mike"},
{"$set": {"text": "My first blog post (update)!"}}
print("影响的文档数量:", result.modified_count)
# 更新多条数据
result = collection.update_many(
{"author": "Mike"},
{"$set": {"text": "My first blog post (update)!"}}
print("影响的文档数量:", result.modified_count)
删除数据:
```python
# 删除一条数据
result = collection.delete_one({"author": "Mike"})
print("影响的文档数量:", result.deleted_count)
# 删除多条数据
result = collection.delete_many({"author": "Mike"})
print("影响的文档数量:", result.deleted_count)
# 删除所有数据
result = collection.delete_many({})
print("影响的文档数量:", result.deleted_count)
关闭连接:
```python
# 关闭连接
client.close()