Я хочу сохранить результат агрегации в новую коллекцию. Я знаю, что это невозможно с фреймворком на данный момент с самой командой.
Есть ли обходной путь в оболочке?
Я хочу сохранить результат агрегации в новую коллекцию. Я знаю, что это невозможно с фреймворком на данный момент с самой командой.
Есть ли обходной путь в оболочке?
Обновление: см. ответ Сальвадора для более эффективного способа сделать это в MongoDB 2.6+.
Сохраните результат агрегирования в переменной, а затем вставьте его свойство result
в новую коллекцию:
var result = db.foo.aggregate(...);
db.bar.insert(result.result);
$out
.
- person Aidan Feldman; 24.06.2013
Начиная с Mongo 2.6.0, вы можете сделать это изначально без каких-либо дополнительных манипуляций.
db.<collection>.aggregate( [
{ <operation> },
{ <operation> },
...,
{ $out : "<output-collection>" }
] )
Проверьте новый оператор агрегации $out для более подробного примера.
P.S. используя этот способ, вы не ограничены размером 16 МБ.
find()
, foreach()
, insert()
.
- person conner.xyz; 25.09.2015
result.result больше не работает, попробуйте toArray().
var result = db.coll.aggregate(...);
db.bar.insert(result.toArray());