我有一个收藏(
coll
)在
db
看起来像,
_id pri_key
ObjectId("5b20f64dc227f879944f330c") a_1
ObjectId("5b20f64dc227f879944f330d") b_1
ObjectId("5b20f64dc227f879944f330e") c_1
ObjectId("5b20f64dc227f879944f330f") d_1
ObjectId("5b20f64dc227f879944f3310") e_1
我想
delete_many
文档使用
_id
对应于一个列表的
keys
)的
pri_key
,即
keys = ['a_1', 'b_1', 'c_1']
在里面
科尔
,我想知道怎么做。
当我能做的时候
db.coll.delete_many({'primary_key': {'$in': keys}})
,我怀疑
MongoDB
手柄
_身份证
比文档中定义的其他键更快。
更新。最初的问题是我转换存储在
pandas
DataFrame
(
df
)在一个列表中
dict
然后将它们插入
mongo
是的。这
蒙哥
write也是一个增量插入,这意味着如果db和列表中的集合之间有任何重叠的文档,我将首先删除集合中的文档,然后使用列表插入新的文档。
删除操作正在使用
主密钥
,所以我得到了
主密钥
来自
数据框
先进入列表,然后简单地使用
db.coll.delete_many({'primary_key':{'$in':keys})
删除集合中重叠的文档。
问题是,我发现它非常缓慢,尤其是在面对一个集合中的1000万个文档时。所以我想知道有没有办法加快这个过程。