删除集合中随机选择的N个文档(MongoDB)

时间:2017-06-08 17:12:01

标签: python mongodb

有人可以告诉我你在MongoDB数据库中的一个集合中删除N个随机选择的文件(理想情况下是Python)的优雅方式是什么?我想像这样使用一些简洁

db.users.remove({ $sample: { size: N } })

但是这个没有解析,我找不到其他地方的工作替代品。非常感谢!

1 个答案:

答案 0 :(得分:1)

使用聚合来获取样本并将_id值存储到列表中:

list_of_ids=list(db.users.aggregate([{'$sample': {'size': 10 }}, {'$project' : {'_id' : 1}} ]))

使用delete_many删除示例文档

results = db.users.delete_many({'_id: {'$in': list_of_ids}})

(*)请务必在此处查看$sample

的限制