mongodb - 将 MongoDB 集合的子集保存到另一个集合

我有一套这样的

{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() 的解决方案必须将所有文档从服务器发送到客户端,然后返回。即使服务器和客户端在同一台机器上,这也会降低性能。

https://stackoverflow.com/questions/9711529/

相关文章:

mongodb - 服务器在 SASL 身份验证步骤 : Authentication failed

mongodb - 如何在 MongoDB 中重命名集合?

mysql - 将数据库从 mysql 转换为 mongoDb

performance - Mongodb聚合框架比map/reduce更快吗?

mongodb - 如何替换mongodb文档中的子字符串

mongodb - 对 mongodb 中的大量记录进行缓慢分页

node.js - 为什么建议不要在 Node.js 代码的任何地方关闭 MongoDB 连接?

c# - 如何在C#中获取连接字符串中指定的Mongo数据库

regex - Mongo中不区分大小写的搜索

node.js - 如何在 Mongoose 中创建和使用枚举