2015-12-17 2 views
1

Я искал документацию о том, как выполнить $ out в агрегации, но я не нашел.

Это мой запрос:

Top.aggregate([ 
    {$sort: {created: -1}}, 
    {$group: {_id:'$location', title:{$push: '$title'}}}, 
    {$project: {location: '$location', mostRecentTitle: '$title'}}, 
    {$out: "aggr_out"} 
]).exec(function(err, docs) { console.log(docs); console.log(err) }); 

Схема:

var schema = mongoose.Schema({ 
    location: {type: String}, 
    title: {type: String}, 
    created: {type: Number, default: Math.floor(new Date()/1000)} 
}) 

Это может быть совместим с MongoDB 3.0.x

+0

Это спасло мой день, когда я пытался спасти агрегат Mongoose в коллекции MongoDB. Это приветствуемый подход, когда Mongoose AggregationCursor, похоже, не работает. https://github.com/Automattic/mongoose/issues/3327 – somnathchakrabarti

ответ

2

Я проверил базу данных и, кажется, чтобы создать новый что-то вроде «aggr_out» с записями. Я рассматриваю это как решение.

+0

Top.aggregate ([ {$ sort: {created: -1}}, {$ group: {_id: '$ location', title: { $ push: '$ title'}}}, {$ project: {location: '$ location', mostRecentTitle: '$ title'}}, {$ out: "aggr_out"} ]) – somnathchakrabarti

1

Большинство запросов может быть выполнено с использованием node-mongodb-native по адресу Mongoose. Для опции out результат будет таким же.

Также он автоматически создаст коллекцию.

Top.collection.aggregate([ 
     {$sort: {created: -1}}, 
     {$group: {_id:'$location', title:{$push: '$title'}}}, 
     {$project: {location: '$location', mostRecentTitle: '$title'}}, 
     {$out: "aggr_out"} 
    ], 
    function(err) { 
     if (err) console.log("error: ", err) 
     else console.log("the all documents have been written onto aggr_out!") 
    } 
); 
Смежные вопросы