Агрегация PyMongo создает линию из строки - PullRequest
0 голосов
/ 02 ноября 2018

Я ищу возможность сохранить команду агрегации, например, в текстовом файле, чтобы загрузить это с помощью python / pymongo и выполнить это.

В настоящее время я нахожу множество примеров использования конвейера в pymongo. Но как мне справиться с этим, когда я хочу передать команду агрегирования в текстовый файл за пределами моего кода pymongo.

Надеюсь, вы понимаете, о чем я: -).

Заранее спасибо за помощь!

1009 * Том *

1 Ответ

0 голосов
/ 02 ноября 2018

Вы можете сохранить данные конвейера в текстовом файле:

pipe.txt

[
  {"$match": 
    {"year":1984}
  }
]

Затем вы можете использовать JSON-пакет Python и метод loads для интерпретации данных в вашем файле. Затем вы можете использовать это для агрегирования:

import pymongo, json
client=pymongo.MongoClient('your connection, credentials here')
db=client.yourDatabase
with open('pipe.txt','r') as f:
    pipeline = json.loads(f.read())

data=db.yourCollection.aggregate(pipeline)
...