问题
I succesfully run:
result = my_col.aggregate(my_pipeline, allowDiskUse=True)
Now when I try:
result = my_col.aggregate(my_pipeline, allowDiskUse=True, explain=True)
it fails saying:
pymongo.errors.ConfigurationError: The explain option is not supported. Use Database.command instead.
Thus I try so as to add the needed option:
result = mydb.command('aggregate', 'mycol', my_pipeline, {'explain':True})
but it fails saying:
pymongo.errors.OperationFailure: 'pipeline' option must be specified as an array
What is wrong?
Thanks for any advice.
Christian
回答1:
Pass your pipeline using the "pipeline" keyword argument to "command":
db.command('aggregate', 'mycol', pipeline=my_pipeline, explain=True)
For example:
db.command('aggregate', 'mycol', pipeline=[{'$project': {'name': '$field'}}], explain=True)
来源:https://stackoverflow.com/questions/43677161/pymongo-aggregate-dont-allow-explain-option