首页 > 解决方案 > 在 pymongo 中使用 .aggregate 复制集合时如何正确使用“$out”运算符?

问题描述

我是 pymongo、MongoDB 甚至 Python 3 的新手,所以如果很明显,请善待。

我正在尝试通过使用 $out 将其复制到另一个集合来备份集合。这个这个问题似乎有关于它应该如何工作的有用和公认的答案,但我自己无法让它以同样的方式工作。两个答案都说,在指定管道之后

pipeline = [ {"$match": {}}, 
             {"$out": "destination_collection"},
]

你可以像这样使用 .aggregate

db.source_collection.aggregate(pipeline)

删除 db 后,我的代码终于起作用了。一开始,我想了解原因。根据 w³schools 教程,我最好的猜测是,这与以下事实有关:我没有使用集合名称,而是使用了这样的变量:

allData = dataBase["db_name"]
myData = allData["source_collection"]

我是对的,认为由于 myData 的评估结果是什么,所以上面的示例不起作用?因为它已经包含了“db.”部分的信息?由于我从教程中获得了它,我认为这是唯一的方法或至少是“标准程序”,但似乎不是。将来我应该如何处理这个问题,有什么理由这样做吗?

干杯,莫腾

标签: pythonmongodbpymongo

解决方案


推荐阅读