首页 > 解决方案 > 删除 find().limit() 中返回的所有文档

问题描述

db.collection.find({}, {'_id': False}).limit(2000)用来从集合中获取文档。该文档被发送到 Facebook API,API 返回成功后,需要从集合中删除该文档。

我的主要疑问是:

我的文档结构是:

{
    "_id" : ObjectId("61608068887f1a0e2162d94b"),
    "event_time" : "1632582893",
    "value" : "549.9000",
    "contents" : [ 
        {
            "product_id" : "1-1",
            "quantity" : "1.000000",
            "value" : "10"
        }
    ]
}

标签: pythonmongodbpymongo

解决方案


为了解决这个问题,根据@adarsh 和@JF 的评论,我使用了以下代码:

rm = [x['_id'] for x in MongoDB(mongo).db.get_collection("DataToSend").find({}, {'_id' : 1}).limit(2000)

MongoDB(mongo).db.get_collection("DataToSend").delete_many({'_id' : { '$in' : list(rm)}})

推荐阅读