草庐IT

Mongodb:似乎不遵守上限大小限制

在win2012上运行mongodbMongo数据库版本v2.6.4我们的集合是用这个参数创建的:capped:true,size:500000000000//500GB但是只有这一个集合的数据目录已经增长到720gb。在此mongo服务器上根本没有使用复制。我该怎么做才能将数据目录保持在500GB左右?这个数据库有时确实会插入大量数据,但我们还需要控制最大大小(并让它丢弃旧数据)。上限大小是否可能不包括索引?或者我应该考虑其他开销吗?(以及如何?或者?数据库统计>db.statsfunction(scale){returnthis.runCommand({dbstats:1,scal

node.js - Mongoose :如何从 express.js 应用程序中的上限集合中获取数据?

我想监听MongoDB上限集合,将其用作日志记录工具。我使用node、express.js、mongo(带有mongoose)。这是我到目前为止的(简化的)代码:varmongoose=require('mongoose');mongoose.connect('mongodb://localhost/mydb');varlogSchema=newmongoose.Schema({date:Date,message:String},{capped:{size:1024}});varLog=mongoose.model('Log',logSchema);varfilter={"date":

mongodb - 当从 mongoDB 中的上限集合中删除文档时,它会出错吗?

我正在为我的新项目学习mongoDB。我创建了一个上限集合,但是当我尝试从下面的mongoDB中的上限集合中删除文档时出现错误,db.mycol.remove({"_id":ObjectId("57bef716e5ff2cbb540e403b")})WriteResult({"nRemoved":0,"writeError":{"code":20,"errmsg":"cannotremovefromacappedcollection:mytestdb.mycol"}})请帮我解决这个问题。提前谢谢你! 最佳答案 Cappedcoll

mongodb - 在 Mongo DB 的上限集合中跟踪已删除的文档

是否有任何选项允许在文档从上限集合中删除时跟踪文档?例如,我有一个状态为已处理或未处理的订单列表。因此,当mongo决定删除某些文档时,我希望每次都将订单保留在上限集合中并检查状态。如果订单已处理-那么,很酷,让他离开,但如果未处理,则将其推回队列。 最佳答案 Cappedcollections是固定大小的集合,一旦集合已满,就会通过覆盖它们来自动删除最旧的文档(基于插入顺序)。从概念上讲,上限集合是一个循环缓冲区而不是队列。这听起来不太适合持久化订单信息的用例——当文档被删除时,如果您的上限集合太小,则没有“钩子(Hook)”将文

javascript - Mongodb:如何在上限集合上创建 `tail -f` View ?

我想在我的Mongo数据库的capped集合(用作日志表)上创建一种“仪表板”。这就是我创建集合的方式:db.createCollection("messages",{capped:true,size:100000});我做了一个collection.find(),带有选项tailable:true、awaitdata:true和numberOfRetries:-1(无限重试)。令我困惑的是,我希望find().each()循环等待新数据(消息)...相反(几秒钟后)它出错了(Nomoredocuments在尾游标中...:-()这是我正在使用的代码:varmongo=require(

logging - 如何使用 Spring Data 创建一个上限集合? - MongoDB

我正在做一个简单的项目。我正在使用SpringData和MongoDB。创建普通集合一切都很完美,但现在我必须注册信息,我的意思是日志记录功能。所以我在mongo文档中读到了这个:Cappedcollectionsprovideahigh-performancemeansforstoringloggingdocumentsinthedatabase.Insertingobjectsinanunindexedcappedcollectionwillbeclosetothespeedofloggingtoafilesystem.Additionally,withthebuilt-inFIF

collections - Mongodb 自动写入上限集合

我需要在一小时内管理许多记录的采集。大约1000000条记录。而且我需要每秒获取每个主键的最后一个插入值。它适用于分片。我正在考虑尝试使用oscappedcollection来只获取每个主键的最后一条记录。为了做到这一点,我做了两个单独的插入,有一种方法,到mongodb中,制作某种触​​发器将插入传播到一个集合到另一个集合? 最佳答案 MongoDB不支持触​​发器或类似行为。做到这一点的唯一方法是让它在您的代码中实现。所以写第一个条目的代码也应该写第二个。人们肯定要求触发。如果您的解决方案需要它们,请转换voteonthefea

php - 你怎么知道一个集合是否有上限?

我正在使用PHPmongo命令:$db->command(array("create"=>$name,"size"=>$size,"capped"=>true,"max"=>$max));而且我的收藏品的增长远远超过了他们假定的上限。我进行了修复:$db->createCollection($name,true,$size,$max);目前,计数太低,我无法判断“修复”是否有效。如何从shell或PHP中判断集合是否有上限?我无法在system.namespaces中找到此信息。 最佳答案 Turnsout还有isCapped()函

mongodb - 使用 ReactiveMongo 处理来自上限集合的作业直到被中断

我在MongoDB中有一个jobs_queue集合。这是一个上限集合,我正在使用可尾游标进行轮询:valcur=jobsQueue.find(Json.obj("done"->Json.obj("$ne"->true))).options(QueryOpts().tailable.awaitData).cursor[JsObject]cur.enumerate()|>>>Iteratee.foreach{queuedDoc=>//dosomeprocessingandstoretheresultsbackintheDB}这是从常规ScalaApp调用的,因此根本没有Akka或Play包

collections - MongoDB - 从上限集合中捕获丢弃的对象

引自MongoDBdocsonCappedCollections:Oncethespaceisfullyutilized,newlyaddedobjectswillreplacetheoldestobjectsinthecollection.有没有什么方法可以在覆盖集合之前捕获它们的“丢弃”对象?我感兴趣的是实现一系列汇总集合。例如。Hourly-->Daily-->Weekly-->Monthlyetc.因此,当一个对象从Hourly集合中删除时,我想捕获它并将其聚合到Daily集合中。提前致谢。//尼古拉斯 最佳答案 您必须在代