如何从单个集合中删除超过一定限制的文档
问题描述:
我正在用MongoDB集合取代一个大的MySQL连接表。在旧的MySQL表上执行的查询之一是限制某个键的记录数量(在LIMIT ORDER BY记录集上的排他性连接)。但在MongoDB中如何做到这一点?如何从单个集合中删除超过一定限制的文档
非常感谢提前!
答
您可以使用sort({key:1})
通过(使用-1而不是1作为降序)和limit(N)
来将返回结果限制为N个文档。
相反,如果你想获得的所有除非你将使用前N个文件:
db.collection.find({user:"X"}).sort({key:-1}).skip(1000)
这将返回除非键排序的前1000名的所有文件。
你能解释一下吗?基本上,你想只允许100个'somefield = 1'的文件,另外100个'somefield = 2'? – Jesta 2013-05-18 02:47:50
的确,这就是我们想要的...... – Pepster 2013-05-21 07:19:23