我有一套这样的
{date: 20120101}
{date: 20120103}
{date: 20120104}
{date: 20120005}
{date: 20120105}
如何将日期为“20120105”的这些文档的子集保存到另一个集合中?
即 db.subset.save(db.full_set.find({date: "20120105"}));
最佳答案
我建议使用聚合框架:
db.full_set.aggregate([ { $match: { date: "20120105" } }, { $out: "subset" } ])
至少在我的情况下,它的运行速度比 forEach
快大约 100 倍。这是因为整个聚合管道运行在 mongod 进程中,而基于 find()
和 insert()
的解决方案必须将所有文档从服务器发送到客户端,然后返回。即使服务器和客户端在同一台机器上,这也会降低性能。
关于mongodb - 将 MongoDB 集合的子集保存到另一个集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9711529/