2014-05-08 91 views
-1

我有两个集合'recruits'和'items'。我收集“新兵”中的文件,进行一些计算,并希望将符合我的标准的文件移动到“项目”集合中。我知道在shell中,我可以使用db.cloneCollection(),作为参数传入我的查询。但是,我需要从Java API以编程方式执行此操作。我不能使用$ out操作符进行聚合,因为我需要插入到集合中,而不是替换它。我对使用map-reduce并不兴奋,因为过去我尝试过使用它,它的行为并不像我预期的那样。通过Java API在MongoDB中将文档从一个集合复制到另一个集合

有没有更好的选择比遍历find()的结果并插入文档?任何人都可以解释为什么cloneCollection()在Java API中不可用?

谢谢!

+1

为什么是-1?如果你认为我的问题不好,请告诉我为什么我可以改进它。 我做过研究 - 其他问题都是使用JavaScript或聚合指向的,这两个问题都不适用于我的情况。 – betseyb

+0

通过驱动程序无法使用克隆集合,因为如果连接到MongoDB的分片实例,克隆集合将无法工作。正如@alernerdev所说,你可以将它作为一个命令来运行,但是如果你在一个分散的环境中工作,就不应该这样做。 – Trisha

回答

0

我不熟悉Java驱动程序,但我确定它可以发送任意dbCommands?如果是这样,cloneCollection是一个dbCommand - 你尝试过吗?

+0

我没有。它最有意义的是放弃'新兵'集合并重新收集符合原始标准的数据,并插入'项目'集合中。 – betseyb

相关问题