随机分区Mongodb数据库

随机分区Mongodb数据库,mongodb,pymongo,Mongodb,Pymongo,因此,我有一个mongodb数据库,并希望对其进行随机分区 我的意思是,数据库的大小是$s$,我想把它拆分,这样我就有$frac{s}{2}$来训练我的分类器,还有$frac{s}{2}$来测试它的准确性交叉折叠验证。我该怎么做?我想给每个条目分配一个整数,然后给它一个从0到1000的范围,只需选择一个随机抽样。问题是我不知道它何时更新,何时插入。因此,如果是新条目,我只会增加要插入的值。所以我想用getLastError检查一下 我觉得有更好的方法来做这件事 有什么建议吗 谢谢,我有一个想法,

因此,我有一个mongodb数据库,并希望对其进行随机分区

我的意思是,数据库的大小是$s$,我想把它拆分,这样我就有$frac{s}{2}$来训练我的分类器,还有$frac{s}{2}$来测试它的准确性交叉折叠验证。我该怎么做?我想给每个条目分配一个整数,然后给它一个从0到1000的范围,只需选择一个随机抽样。问题是我不知道它何时更新,何时插入。因此,如果是新条目,我只会增加要插入的值。所以我想用getLastError检查一下

我觉得有更好的方法来做这件事

有什么建议吗


谢谢,

我有一个想法,但这取决于您的mongodb部署(是否有超过此集合的内容)、集合和文档大小(1MB/文档?)以及性能规格(每秒插入和更新的数量)。因此,我有大约20个文件,其中包含200k行。我按顺序解析每个文件,并通过内部缓存使用插入/更新。我想我只是一直在看collection.size,然后把它的大小作为一个额外的字段?我还将在这个数据库中放入5或6个集合。平均约为3000次更新(纯更新)或10k次插入(纯插入)。所以假设更新,因为我大部分时间都在更新旧条目。一个想法是使用分片和随机数,假设0-100作为分片键(或复合键的第一部分),然后使用这些分片手动分割数据。然后通过直接查询shard1(不使用mongos)来训练数据。缺点:通过mongos的查询总是分散收集,因为数据是随机分片的。。在插入测试数据之前,将块大小减少到一(1MB)。(请不要在CMS等的生产系统中这样做。)一台计算机正在运行数据库,插入数据库程序是一项要求吗?你能运行两个虚拟机吗?