Экспорт структуры агрегации mongodb в новую коллекцию
Я хочу сохранить результат структуры агрегации в новую коллекцию.
Я знаю, что это невозможно с каркасом в данный момент с самой командой.
Есть ли обходной путь в оболочке?
Ответы
Ответ 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());