Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 仅允许mongo集合中包含x个文档_Mongodb_Meteor - Fatal编程技术网

Mongodb 仅允许mongo集合中包含x个文档

Mongodb 仅允许mongo集合中包含x个文档,mongodb,meteor,Mongodb,Meteor,我正在使用Mongo集合来实现日志记录功能。我希望它是一个跟踪日志,所以它应该只保存200个条目,然后再跟踪其他条目。功能类似于tail-f-n200 在查询中使用limit可以在查询方面产生类似的效果 Posts = new Mongo.Collection('posts'); Posts.find({}, { limit: 200 }); 但这不会从集合中删除旧条目。我不需要以前的条目 mongodb有没有办法做到这一点?只需使用并编写一个小的cron作业来删除旧帖子 var nPosts

我正在使用Mongo集合来实现日志记录功能。我希望它是一个跟踪日志,所以它应该只保存200个条目,然后再跟踪其他条目。功能类似于
tail-f-n200

在查询中使用
limit
可以在查询方面产生类似的效果

Posts = new Mongo.Collection('posts');
Posts.find({}, { limit: 200 });
但这不会从集合中删除旧条目。我不需要以前的条目

mongodb有没有办法做到这一点?

只需使用并编写一个小的cron作业来删除旧帖子

var nPosts = Posts.find().count();
if ( nPosts > 200 ){
  Posts.remove({},{sort: {createdAt: 1}, limit: ( nPosts - 200 )});
}
或者,您可以在每次插入后使用并执行此修剪操作。

只需使用并编写一个小cron作业来删除旧帖子

var nPosts = Posts.find().count();
if ( nPosts > 200 ){
  Posts.remove({},{sort: {createdAt: 1}, limit: ( nPosts - 200 )});
}
或者,您可以在每次插入后使用并执行此修剪操作。

只需使用并编写一个小cron作业来删除旧帖子

var nPosts = Posts.find().count();
if ( nPosts > 200 ){
  Posts.remove({},{sort: {createdAt: 1}, limit: ( nPosts - 200 )});
}
或者,您可以在每次插入后使用并执行此修剪操作。

只需使用并编写一个小cron作业来删除旧帖子

var nPosts = Posts.find().count();
if ( nPosts > 200 ){
  Posts.remove({},{sort: {createdAt: 1}, limit: ( nPosts - 200 )});
}

或者,您可以在每次插入后使用并执行此修剪操作。

执行此操作的最佳方法是使用封顶集合:

MDG非常友好,将其包含在Meteor包装中,尽管它是内部的

Foo = Mongo.collection('foo');
Foo._createCappedCollection(sizeInBytes, numOfDocs);
有上限集合的一个很好的例子是Oplog,它只是有上限集合的副本。Meteor注视着这些变化&当某些可以采取行动的变化时,它会触发失效。您可以在Robomongo中找到这一点:
System>local>collections>oplog.rs
,如果它提供了您所需要的一切,您甚至不需要自己制作


或者,npm上有很多选项,因此您不必重新发明轮子。这篇文章有点过时,但值得一读:

最好的方法是有封顶的收藏:

MDG非常友好,将其包含在Meteor包装中,尽管它是内部的

Foo = Mongo.collection('foo');
Foo._createCappedCollection(sizeInBytes, numOfDocs);
有上限集合的一个很好的例子是Oplog,它只是有上限集合的副本。Meteor注视着这些变化&当某些可以采取行动的变化时,它会触发失效。您可以在Robomongo中找到这一点:
System>local>collections>oplog.rs
,如果它提供了您所需要的一切,您甚至不需要自己制作


或者,npm上有很多选项,因此您不必重新发明轮子。这篇文章有点过时,但值得一读:

最好的方法是有封顶的收藏:

MDG非常友好,将其包含在Meteor包装中,尽管它是内部的

Foo = Mongo.collection('foo');
Foo._createCappedCollection(sizeInBytes, numOfDocs);
有上限集合的一个很好的例子是Oplog,它只是有上限集合的副本。Meteor注视着这些变化&当某些可以采取行动的变化时,它会触发失效。您可以在Robomongo中找到这一点:
System>local>collections>oplog.rs
,如果它提供了您所需要的一切,您甚至不需要自己制作


或者,npm上有很多选项,因此您不必重新发明轮子。这篇文章有点过时,但值得一读:

最好的方法是有封顶的收藏:

MDG非常友好,将其包含在Meteor包装中,尽管它是内部的

Foo = Mongo.collection('foo');
Foo._createCappedCollection(sizeInBytes, numOfDocs);
有上限集合的一个很好的例子是Oplog,它只是有上限集合的副本。Meteor注视着这些变化&当某些可以采取行动的变化时,它会触发失效。您可以在Robomongo中找到这一点:
System>local>collections>oplog.rs
,如果它提供了您所需要的一切,您甚至不需要自己制作


或者,npm上有很多选项,因此您不必重新发明轮子。这篇文章有点过时,但值得一读:

我在回答他的问题,我意识到这可能比看起来更棘手。如何删除所有超过200个的项目?到目前为止,我一直在做的主要事情是在出版物中使用
限制,这“有效”,但不是最佳的。我在回答他的问题时,意识到这可能比看起来更棘手。如何删除所有超过200个的项目?到目前为止,我一直在做的主要事情是在出版物中使用
限制,这“有效”,但不是最佳的。我在回答他的问题时,意识到这可能比看起来更棘手。如何删除所有超过200个的项目?到目前为止,我一直在做的主要事情是在出版物中使用
限制,这“有效”,但不是最佳的。我在回答他的问题时,意识到这可能比看起来更棘手。如何删除所有超过200个的项目?到目前为止,我一直在做的主要事情是在出版物中使用
限制,这“有效”,但不是最佳的。让它保存的数据不超过实际工作所需的数据量是非常理想的。哦,太酷了,我从来没有听说过封顶收藏,尤其是在流星背景下!太好了!这正是我想要的,谢谢你,sirOh,太酷了,我从来没有听说过capped系列,尤其是在流星背景下!太好了!这正是我想要的,谢谢你,sirOh,太酷了,我从来没有听说过capped系列,尤其是在流星背景下!太好了!这正是我想要的,谢谢你,sirOh,太酷了,我从来没有听说过capped系列,尤其是在流星背景下!太好了!正是我想要的,谢谢你,先生