删除 find().limit() 中返回的所有文档

Delete all documents returned in a find().limit()

我正在使用 db.collection.find({}, {'_id': False}).limit(2000) 从 collection 获取文档。此文件被发送到FacebookAPI,APIreturn成功后需要从collection.

删除此文件

我的主要疑惑是:

我的文档结构是:

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

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

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)}})