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

关于mongodb - 将 MongoDB 集合的子集保存到另一个集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9711529/

相关文章:

mongodb - Mongodb 探查器输出 : what is the "command" operation?

node.js - 如何使用 MongoDB、Node.js(+express) 和 Jade 创建 MVC 表单

mongodb - 如何在docker-compose中运行具有不同端口的多个MongoDB?

python - MongoDb:$按 $in 排序

javascript - save() 不适用于 mongoose.Schema

MongoDB hadoop 连接器无法查询 mongo hive 表

java - Spring Multi-Tenancy Web 服务 : postgres vs mongodb

java - Spring 在 MongoDB 中将 Date 保存为 String - 无法从 String 类型转换为 Date 类型

MongoDB查询以查找数组第一个元素的属性

node.js - MongoDB - 将文档写入其他文档并使用 Nodejs 进行更新