删除 find().limit() 中返回的所有文档
Delete all documents returned in a find().limit()
我正在使用 db.collection.find({}, {'_id': False}).limit(2000)
从 collection 获取文档。此文件被发送到FacebookAPI,APIreturn成功后需要从collection.
删除此文件
我的主要疑惑是:
- 有没有办法在不使用 for 的情况下删除所有这 2000 个文档
环形?我知道
collection.find
return是一个游标,有没有办法
在 delete_many
? 中使用此光标
我的文档结构是:
{
"_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)}})
我正在使用 db.collection.find({}, {'_id': False}).limit(2000)
从 collection 获取文档。此文件被发送到FacebookAPI,APIreturn成功后需要从collection.
我的主要疑惑是:
- 有没有办法在不使用 for 的情况下删除所有这 2000 个文档
环形?我知道
collection.find
return是一个游标,有没有办法 在delete_many
? 中使用此光标
我的文档结构是:
{
"_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)}})