- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
mongo/pymongo 的新手。目前使用最新-v3.2.2
看起来 insert_many 没有按预期执行?我注意到,即使在为 db.col.insert_many 提供生成器时,内存使用量仍然会激增(这使得插入数百万个文档变得困难 - 尽管我确实意识到 sys.mem 应该 > 集合大小以获得最佳性能,所以实际上也许这不是我应该担心的?
我的印象是,如果您将生成器传递给 insert_many,那么 pymongo 会将插入“缓冲”到 16 或 32mb 的“ block ”中?
手动执行此缓冲/分 block 可解决问题...
见下文:
Example1 = straight insert_many(高内存使用率 - 2.625 GB)
Example2 = 'buffered' insert_many(预期 [低] 内存使用 - ~300 MB)
import itertools
from itertools import chain,islice
import pymongo
client = pymongo.MongoClient()
db=client['test']
def generate_kv(N):
for i in range(N):
yield {'x': i}
print "example 1"
db.testcol.drop()
db.testcol.insert_many(generate_kv(5000000))
def chunks(iterable, size=10000):
iterator = iter(iterable)
for first in iterator:
yield chain([first], islice(iterator, size - 1))
print "example 2"
db.testcol.drop()
for c in chunks(generate_kv(5000000)):
db.testcol.insert_many(c)
有什么想法吗?漏洞?我用错了吗?
最佳答案
我认为发生这种情况是因为对于insert_many
pymongo 需要有一个完整的list
操作,而不是iterable
。在这个列表将被发送到 MongoDB 之后,它将被处理。
insert
。insert_many
)。这是数据库的正常行为。
关于python - 插入数百万个文档 - mongo/pymongo - insert_many,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37293900/
我就废话不多说了,大家还是直接看代码吧~ ? 1
我正在尝试将以下名为 posts 的字典列表插入到 mongo 中,但出现了一个 BulkWriteError: batch op errors occurred 错误,我不知道该怎么做修复。 帖子:
在将 insert_many 与 pymongo 一起使用时,我需要忽略重复插入,其中重复项基于索引。我在 stackoverflow 上看到过这个问题,但没有看到有用的答案。 这是我的代码片段: t
我目前正在尝试使用 C++ 应用程序最大限度地提高插入的写入速度到 MongoDB 中。我看到的行为是 insert_many() 操作会变慢,导致写队列建立,然后后续的 insert_many()
我目前正在尝试编写一个脚本,将文档插入 MongoDb 并返回每个元素的存储位置。非常简单,感谢 insert_many(),但是如果我在插入时出现错误,我的问题就会出现。 我将无法获取刚刚插入的 I
我想在我的集合中insert_many() 文件。其中一些可能与集合中的现有文档具有相同的键/值对(在我的示例中为 screen_name)。我在此键上设置了唯一索引,因此出现错误。 my_colle
mongo/pymongo 的新手。目前使用最新-v3.2.2 看起来 insert_many 没有按预期执行?我注意到,即使在为 db.col.insert_many 提供生成器时,内存使用量仍然会
这个问题在这里已经有了答案: Fast or Bulk Upsert in pymongo (6 个回答) 关闭3年前。 我有一些这样的数据: data = [{'_id': 1, 'val': 5}
我有一个包含 3 个成员的 MongoDB 副本集和一个在其中存储数据的 Python 应用程序。 当使用带有包装器的单个文档插入时,我可以处理 pymongo 的 AutoReconnect 异常,
作为练习,我从 API 中提取数据并将其插入到 psql 数据库中。我最初遵循每次拉取 1000 个条目的默认限制,但我决定尝试获取大约 40K 行的所有数据。经过一些实验后,我可以拉出 4800,但
我正在尝试将文档从一个数据库增量复制到另一个数据库。 某些字段包含以下格式的日期时间值: 2016-09-22 00:00:00 而其他的则采用这种格式: 2016-09-27 09:03:08.98
我正在使用一种方法将一些数据存储在 MongoDB 数据库中。 void save_data(std::vector list){ using namespace std; using
我正在更新一个包含数百万文档且 _id 冲突少于 10 个的数据库。 我目前正在使用 PyMongo 模块通过 insert_many 进行批量插入: 查询数据库以查看_id 是否存在 如果 _id
我是一名优秀的程序员,十分优秀!