- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章pymongo insert_many 批量插入的实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
我就废话不多说了,大家还是直接看代码吧~ 。
1
2
3
4
5
6
7
8
9
10
|
lt
=
client.fangjia.district_stat_all_0416
dl
=
dt.find(query)
bf
=
[]
for
m
in
dl:
bf.append(m)
if
len
(bf)
=
=
20000
:
lt.insert_many(bf)
bf
=
[]
lt.insert_many(bf)
|
补充知识:Python操作Mongodb插入数据的两种方法:insert_one()与insert_many() 。
代码说明:
将mysql中table的数据插入到mongodb里 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
sys.setdefaultencoding(
'utf8'
)
import web
from
pymongo import MongoClient
class getPltfList(object):
def __init__(self):
self.db1 = web.
database
(dbn=
'mysql'
, db =
'episode'
,
user
=
'root'
, pw=
'abc111--'
, host =
'127.0.0.1'
)
self.db1.printing =
False
self.db2 = web.
database
(dbn=
'mysql'
, db =
'episode_soc'
,
user
=
'root'
, pw=
'abc111--'
, host =
'127.0.0.1'
)
self.db2.printing =
False
self.db3 = web.
database
(dbn=
'mysql'
, db =
'cl_episode'
,
user
=
'root'
, pw=
'abc111--'
, host =
'127.0.0.1'
)
self.db3.printing =
False
self.db4 = web.
database
(dbn=
'mysql'
, db =
'cl_episode_soc'
,
user
=
'root'
, pw=
'abc111--'
, host =
'127.0.0.1'
)
self.db4.printing =
False
def __call__(self):
return
self.createPltfList()
def createPltfList(self):
self.ckpltfList = list(self.db1.query(
'select name, ip from EPISODE_PLTF_INFO order by id DESC'
))
self.ckpltfList += list(self.db2.query(
'select name, ip from EPISODE_PLTF_INFO order by id DESC'
))
self.clpltfList = list(self.db3.query(
'select name, ip from EPISODE_PLTF_INFO order by id DESC'
))
self.clpltfList += list(self.db4.query(
'select name, ip from EPISODE_PLTF_INFO order by id DESC'
))
return
self.ckpltfList,self.clpltfList
if __name__ ==
'__main__'
:
mpList = list()
flag = 0
tmp = 0
sum1 = 0
sum2 = 0
pltfList = getPltfList()()
client = MongoClient(
"127.0.0.1"
, 27017)
mdb = client.episode
collection = mdb.pltf_basic_info
# print (type(pltfList[1])) #list
result= list()
for
pltf_my
in
pltfList[0]:
pltf_mog = collection.find()
for
record
in
pltf_mog:
IP = record.get(
'Cfg'
).get(
'Debug_IP'
)
Name
= record.get(
'Cfg'
).get(
'Register_Name'
)
# print IP,
Name
if IP == pltf_my[
'ip'
]
and
Name
== pltf_my[
'name'
] :
flag = 1
# print IP,
Name
break
else
:
flag = 0
if flag == 0 :
data1 = {
"Cfg"
: {
"Debug_IP"
: pltf_my[
'ip'
],
"Register_Name"
:pltf_my[
'name'
],
"Site"
:
"SH-CK"
} }
# print data1
result.append((data1))
# collection.insert_one(data1)
# collection.delete_one(data)
sum1 = sum1+1
# print len(result)
# collection.insert_many(result)
for
pltf_my
in
pltfList[1]:
pltf_mog = collection.find()
for
record
in
pltf_mog:
IP = record.get(
'Cfg'
).get(
'Debug_IP'
)
Name
= record.get(
'Cfg'
).get(
'Register_Name'
)
if pltf_my[
'ip'
].encode(
"utf-8"
) == IP.encode(
"utf-8"
)
and
pltf_my[
'name'
].encode(
"utf-8"
) ==
Name
.encode(
"utf-8"
) :
tmp = 1
# print IP,
Name
break
else
:
tmp = 0
if tmp == 0 :
data2 = {
"Cfg"
: {
"Debug_IP"
:pltf_my[
'ip'
],
"Register_Name"
:pltf_my[
'name'
],
"Site"
:
"SH-CL"
} }
# print data2
result.append((data2))
# collection.insert_one(data2)
# collection.delete_one(data)
sum2 = sum2+1
collection.insert_many(result)
print sum1,sum2
|
刚开始的时候我使用的是insert_one()方法,一条一条的插入到mongodb的集合里,但是计算出的sum有出入.
在调试的过程中我发现:
注释掉 # collection.insert_one(data1) # collection.insert_one(data2) 。
计算出来的sum1 = 193 sum2 = 222 这是合理的,因为ck_mysql里有193条记录,cl_mysql里有234条记录,mongod里有总共有15条,但是12条是与cl_mysql重复,所以正确.
但是当我去掉注释使用 collection.insert_one(data1) collection.insert_one(data2)时,打印出的sum1=181 sum2 = 213 。
也就是说少了几个数据,我不知道去哪了.
想了好多办法,于是采用insert_many()的方法插入。先定义一个list(),将每个数据(数据的类型是dict)追加到list里:reslult.append(data1/data2),最后result里就会含有所有的数据,一起插入.
于是乎,问题解决了.
可是我还是很困惑insert_one()哪里出问题了!!!!!! 。
以上这篇pymongo insert_many 批量插入的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/luoganttcc/article/details/79962006 。
最后此篇关于pymongo insert_many 批量插入的实例的文章就讲到这里了,如果你想了解更多关于pymongo insert_many 批量插入的实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试扩展我的第一个 Flask 应用程序,但不了解在多个模块中使用 pymongo 数据库所需的结构。例如,这是我的新结构: run.py app/ ├── __init__.py ├── fo
Pymongo 返回一个游标,我可以迭代结果并将其文档附加到列表中。有没有办法直接获取列表中的结果文档?谢谢 最佳答案 以下代码会将整个结果集(光标)转换为列表: myresults = list(m
我使用pip3成功安装了pymongo Aleeshas-MacBook-Air:project 2 aleesha$ sudo pip3 install pymongo The directory
我正在尝试运行非常简单的代码来弄清楚如何将 pymongo 与 MongoDB Atlas Cloud 结合使用。 这是示例代码 import pymongo client = pymongo.Mon
我想找到集合 (mycol) 中的文档的 _id,其中 "name":"John"。我已插入文档,但想找到文档的 _id。可能吗 ?我正在尝试 result = db.mycol.find({"_id
我是 PyMongo 和 Flask 的新手,不过我已经完成了 Flask 的教程,并且对它感觉很舒服。我现在正在尝试使用 MongoDb 实现 flask 服务器,但我不确定如何进行。 我看到有两个
我正在尝试在 mongodb 集合中批量插入一些文档。 我对我收藏的链接字段施加了唯一约束。 bulkUrls = db.urls.initialize_ordered_bulk_op() for i
简单介绍一下背景知识,我之前曾在 Node.js 和 mongoose.js 中使用过 MongoDB。现在我决定尝试使用 python 和 pymongo。但是,当我尝试将文档插入到我的集合中时,我
我正在获取 MongoDB 中某个集合的全部数据,一段时间后(比如 30 或 60 分钟),脚本会引发以下错误: pymongo.errors.CursorNotFound: cursor id 18
我在 mongodb 数据库中消费了一堆推文。我想使用 pymongo 查询这些推文。例如,我想查询 screen_name。但是,当我尝试这样做时,python 不会返回推文,而是返回有关 pymo
我有一个 合作伙伴集合,我正在使用 pymongo 来检索数据 当我使用 MongoDB 查询集合时,我看到以下结果 db.partner.find({'unique_key': 'c89dbe313
我正在尝试使用 Pymongo 将字典插入到 MongoDB 集合中。代码段为 newdict = {'id': a, 'usr_id': i.get('user_id'), 'reach_value
我尝试使用 pymongo 连接 MongoDB。但是遇到了dnspython必须安装的错误即使在我安装了 pymongo 和 dnspython 之后。 我的代码是: import pymongo
我正在使用 pymongo 将数亿条格式为 {'id_str': , 'created_at': , 'text': } 的推文从文本文件迁移到 MongoDB。为每个用户创建一个集合来存储他/她的推
我知道这是一个相当普遍的问题。我正在编写一个小型 Flask 应用程序,并试图将一些查询反馈给 View 。 我已经连接到我的本地 MongoDB 设置,并进行了成功的查询 - 但我无法用它生成 js
我想从 ObjectId 对象中获取字符串字符。我用的是pymongo。例如:ObjectId("543b591d91b9e510a06a42e2"),我想获取"543b591d91b9e510a06
我想实现一个函数,该函数需要以与插入相反的顺序从 pymongo 集合中获取值。 我可以想到几个方法: cursor = collection.find(skip=collection.count()
从pymongo文档: MongoDB以BSON格式存储数据。 BSON字符串采用UTF-8编码,因此PyMongo必须确保 它存储的任何字符串仅包含有效的UTF-8数据。常规字符串()>已验证,并且
目录 查询数据 设置查询条件 更多查询操作 PS:pymongo最大查询限制 解决方案 查询数据 往
修订问题。将很快更新。 最佳答案 演示 - https://mongoplayground.net/p/ksay82IaGHs 按 TeacherID 分组和 TeacherID并获得组合的出现,$s
我是一名优秀的程序员,十分优秀!