复制Mongodb集合但应用了“limit”

时间:2014-01-14 03:47:50

标签: mongodb

是否可以使第二个Collection与第一个Collection完全相同,但是应用了limitsort运算符?

如果第一个Collection有1000多条记录并且添加了新记录,则第二个Collection将包含所有新记录,但仅限于N个最新记录(按时间戳字段排序)。

这样做的原因是为了克服我的数据库驱动程序中没有实现sortlimit的限制。

1 个答案:

答案 0 :(得分:1)

听起来你想要的是capped collection

上限集合自动限制为固定数量的记录。当它们已满并添加新文档时,将删除最旧的文档。当您从集合中查询而没有显式排序时,所有记录都保证以插入顺序排列。最大的限制是,当增加其大小时,无法更新上限集合中的文档。

需要使用createCollection函数明确创建上限集合。此shell命令将创建一个限制为1000个文档的上限集合:

db.createCollection( "your_collection_name", { capped: true, size: 1000 } );

如果要将现有集合转换为上限集合,可以使用convertToCapped数据库命令:

db.runCommand({"convertToCapped": "your_existing_collection_name", size: 1000});