草庐IT

mongodb - 在 mongo 中归档历史数据的最佳方法是什么

我在mongo中有一个集合,用于存储我的应用程序的每个用户操作,并且它的大小非常大(每天300万个文档)。在UI上,我需要显示最大的用户操作。6个月。虽然有索引,但对所有历史数据的查询都变得非常慢。所以,我想将超过6个月的文档移动到一个单独的集合中。这是处理我的问题的正确方法吗? 最佳答案 以下是您可以用来管理MongoDB中数据增长的一些技术:使用上限集合使用TTL几个月使用多个集合在同一主机上使用不同的数据库 关于mongodb-在mongo中归档历史数据的最佳方法是什么,我们在St

mongodb - mongo - 丢弃不存在的集合抛出 'ns not found'

我试图删除一个不存在的集合,但出现以下错误:MongoError:nsnotfound.在类似的问题中,有一个指向mongo代码的链接,表明这是预期的行为:MongoError:nsnotfoundwhentrytodropcollection但是,根据mongo文档,如果集合不存在,此方法应返回false:https://docs.mongodb.com/manual/reference/method/db.collection.drop/#db.collection.drop我错过了什么?服务器版本-3.6.5,mongodb客户端(javascript)-3.0.21我使用的命令

mongodb - 在 Spring 数据 mongo query-dsl 中过滤嵌套映射值

我正在将Spring-Data-mongo与query-dsl集成,因此我需要为query-dsl查询生成Q文件这是我的订单POJO:publicclassOrder{privateList>items;}我的Order.java的Q文件publicclassQOrderextendsEntityPathBase{privatestaticfinallongserialVersionUID=-682690651L;publicstaticfinalQOrderorder=newQOrder("order");publicfinalListPath,SimplePath>>items=t

mongodb - 如何根据嵌套字段值过滤 mongo 集合?

我有一个具有以下结构的meteor集合。这实际上来自ostrio的Meteor-files集合。{"_id":"HsXoZ6bxkx5kMcJtm","name":"trees.jpg","meta":{"artist_id":"QkmYdsZsMmRzqTg58","artist":"somename"},"mime-type":"audio/mp3","userId":"QkmYdsZsMmRzqTg58","_collectionName":"images"}我定义一个发布Meteor.publish('files.artist',functionpublishUserImage

python - 从 Mongo 获取字典并使用 Numpy 转换为 ndarray

我在Mongo中有一个聚合查询返回如下数据:{a:1,b:2,c:3}{a:4,b:5,c:6}{a:7,b:8,c:9}我想对a、b和c进行FFT,我需要像这样将数据放入3个numpy数组中:a=np.array([1,4,7])b=np.array([2,5,8])c=np.array([3,6,9])使用numpy执行此操作的最佳选择是什么,因为现在我正在执行for循环并且需要很长时间。更新:mongo的结果是一个可迭代的Cursor我现在的做法是这样的:a=[]b=[]c=[]foriteminaggregation_list:a.append(item['a'])b.appe

mongodb - Mongo查询一个数组是一个子数组

我正在寻找充当$setIsSubset的查询,但不考虑重复值。例如,[1,1,2,3]是[1,2,3,4]的子集,因为集合没有重复值(value)观。如何编写一个查询,使[1,1,2,3]不是[1,2,3,4]的子集?预期输出示例:INPUT|TARGET|RESULT[1][1,2,3,4]TRUE[1,2,3][1,2,3,4]TRUE[1,1,2,3][1,2,3,4]FALSE[1,2,3,4][1,2,3,4]TRUE[1,3][1,2,3,4]TRUE[1,11,5][1,2,3,4]FALSE[1,2,2,3][1,2,3,4]FALSE 最佳

ruby-on-rails - 在 Heroku 上从 SQLite3 迁移到 Mongo?

我目前正在将SQLite3与一个简单的帖子和图像共享应用程序一起使用,类似于Rails3Hartl教程(就数据库结构而言)。但我想转移到Mongo以进行future的可扩展性/学习。我也托管在Heroku上,并且使用15GB的共享数据库。我尝试为过渡安装MongoHQ和MongoMapper(按照Heroku的说明),根据Heroku的支持,这部分设置正确。但是,当我关闭共享数据库时,应用程序停止工作,而不是运行Mongo。我不确定接下来要做什么,我是否必须在mongo中重写我的代码,或者mongomapper是否可以解决所有这些问题?如果我更改,我的数据会丢失吗?如果是,我该如何复制

mongodb - Mongo $exists 查询不返回正确的文档

老实说,我不明白这怎么可能:>db.ts.find({"bcoded_metadata":{"$exists":true}}).count()199049>db.ts.find({"bcoded_metadata":{"$exists":false}}).count()0>db.ts.count()2507873我认为第一个和第二个查询的总和必须等于第三个。我需要从集合中选择“bcoded_metadata”不存在但查询不返回任何内容的所有元素。当我在简单的python脚本中迭代这个集合并手动检查“bcoded_metadata”是否存在时,一切都按预期工作。frompymongoim

mongodb - mongo 上的这个 map-reduce 查询有什么问题?

请观察mongoshell:>mapfunctionmap(){if(this.server_location[0]==-77.0367){emit(this._id,this);}}>reducefunctionreduce(key,values){returnvalues[0];}>db.static.mapReduce(map,reduce,{out:'x',query:{client_location:{$near:[-75.5,41.89],$maxDistance:1}}}){"result":"x","timeMillis":43,"counts":{"input":10

python - 用 mongo 中的查询结果填充持久集合的建议方法是什么?

最明显的方法是执行find,然后遍历游标并一个接一个地插入元素。这对我来说似乎效率低下。另一种方法是在查询结果上定义一个map-reduce,它不会减少任何东西,并使用out参数指定目标集合。这似乎是一个hack。有没有更高效、更直接的方法呢? 最佳答案 目前您必须使用您描述的解决方法,您提到的功能已被请求但尚未实现:https://jira.mongodb.org/browse/SERVER-610https://jira.mongodb.org/browse/SERVER-2920通过用例对他们进行投票和/或评论以引起他们的注意