Collections 如何使用mongoose创建封顶集合?

Collections 如何使用mongoose创建封顶集合?,collections,mongoose,Collections,Mongoose,我正在尝试使用Mongoose创建一个有上限的集合,但是下面创建的集合没有上限: var schema=newmongoose.schema( { 名称:{type:String}, 文本:{type:String} }, { 封顶:{max:5,大小:1000000} }); 我很确定我正确地遵循了文档中的示例,但显然我做错了什么 new Schema({..}, { capped: { size: 1024, max: 1000, autoIndexId: true } }); siz

我正在尝试使用Mongoose创建一个有上限的集合,但是下面创建的集合没有上限:

var schema=newmongoose.schema(
{
名称:{type:String},
文本:{type:String}
},
{
封顶:{max:5,大小:1000000}
});
我很确定我正确地遵循了文档中的示例,但显然我做错了什么

new Schema({..}, { capped: { size: 1024, max: 1000, autoIndexId: true } });
  • size
    是内存中的最大字节数,直到您的数据库未被封顶或旧记录未被删除为止
  • max
    定义在封顶之前数据库将保留的最大记录数

    必须定义尺寸组件,而不考虑最大组件。 因为如果在达到最大值之前使用您的尺寸,则会开始过多的封顶,但反之亦然


如果已经存在非封顶集合,则需要使用以下命令将其转换为封顶集合

db.runCommand({"convertToCapped": "collection_name", size: 100000});

然后你就可以和猫鼬一起使用了

确保语法正确;你用的是什么版本的猫鼬?代码看起来不错。在设置capped属性之前,可能已将集合创建为uncapped。如果是这样,请尝试删除集合,然后将其创建为capped。是否需要同时提供max和size,或者只有max才可以?这样我就可以省略“max”而只指定size?如何使用字符串、int和objectId调整mongo db文档的大小
db.runCommand({"convertToCapped": "collection_name", size: 100000});