我有很多其他人下载的推文,我想测试一下aggregate()
查询。但是,它需要花费大量时间来执行,我想快速检查我的结果。
我可以使用庞大的原始集合创建一个较小的样本集合,以便我可以快速测试新的查询吗?如果是的话,我该怎么做?如果不是,人们通常如何在执行前测试查询的正确性?
我发现的所有答案都说有关转储整个集合的问题,而我只想要一个样本来运行我的aggregate()
查询。我已经尝试过db.collection.findOne().aggregate(/*QUERY*/)
但是它会抛出错误,说aggregate is not a function
答案 0 :(得分:1)
您可以轻松地创建集合的子集,如下所示:
db.collection.aggregate({$limit: 1000}, {$out: "subsetCollection"})
这将从原始集合中获取1000个结果,并将其写入名为“subsetCollection”的新集合。 然后,您可以在此新集合上测试聚合查询