2014-12-17 4 views
1

Извините за основной вопрос, я новичок в монго и изучаю свой путь.Mongo: импортировать результаты совокупного запроса?

Я запустил агрегатный запрос в Монго:

> var result = db.urls.aggregate({$group : {_id : "$pagePath"} }); 
> result 
{ "_id" : "/section1/page1" } 
{ "_id" : "/section1/page2" } 
... 
Type "it" for more 

Я хотел бы теперь, чтобы сохранить результаты этого совокупного запроса в новую коллекцию. Это то, что я пробовал:

> db.agg1.insert(result); 
WriteResult({ "nInserted" : 1 }) 

Но это, кажется, вставили все строки, как только один ряд:

> db.agg1.count() 
1 
> db.agg1.findOne(); 
{ "_id" : "/section1/page1" } 
{ "_id" : "/section1/page2" } 
... 
Type "it" for more 

Как я могу вставить их как отдельные строки?

Я попытался вставить _id непосредственно, без успеха:

> db.agg1.insert(result._id); 
2014-12-17T15:23:26.679+0000 no object passed to insert! at src/mongo/shell/collection.js:196 

ответ

1

Используйте оператор в $out трубопровода для этого:

db.urls.aggregate([ 
    {$group : {_id : "$pagePath"} }, 
    {$out: "agg1"} 
]); 

Обратите внимание, что $out был добавлен в MongoDB 2.6.

+0

Это прекрасно работает, большое спасибо за ответ. – Richard

Смежные вопросы