Подтвердить что ты не робот

Экспорт структуры агрегации mongodb в новую коллекцию

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

Есть ли обходной путь в оболочке?

4b9b3361

Ответ 1

Обновление: См. Сальвадор answer для более эффективного способа сделать это в MongoDB 2.6 +.


Сохраните результат агрегирования в переменной и затем вставьте его свойство result в новую коллекцию:

var result = db.foo.aggregate(...);
db.bar.insert(result.result);

Ответ 2

Начиная с Mongo 2.6.0, вы можете сделать это самостоятельно без каких-либо дополнительных манипуляций.

db.<collection>.aggregate( [
     { <operation> },
     { <operation> },
     ...,
     { $out : "<output-collection>" }
] )

Для более подробного примера просмотрите новый оператор агрегации $out.

P.S., используя этот способ, вы не ограничены размером 16 МБ.

Ответ 3

result.result больше не работает, попробуйте toArray().

var result  = db.coll.aggregate(...);
db.bar.insert(result.toArray());