2014-12-30 5 views
0

Как мне определить следующий MongoDB совокупного запрос в мангусте:Как агрегировать в мангусте

db.contacts.aggregate([{$group: { "_id": { code: "$Code", name: "$Name" } } }]) 

Цель запроса вывести список различных кодов и названий.

Мой текущий код модели:

'use strict'; 

var mongoose = require('mongoose'), 
    Schema = mongoose.Schema, 
    ObjectId = Schema.ObjectId; 

var fields = { 
    Code: { type: String }, 
    Name: { type: String } 
}; 

var contactSchema = new Schema(fields); 

module.exports = mongoose.model('Contacts', contactSchema); 

Маршрутизатор выглядит следующим образом:

api.contacts = function (req, res) { 
Contacts.find({ AgencyTranslation: /^BROADCASTING/ }, function(err, contacts) { 
    if (err) { 
    res.json(500, err); 
    } else {  
    res.json({contacts: contacts}); 
    } 
}); 

Я пробовал различные варианты, а также посмотрел пример кода на: mongoose API docs, но я не могу показаться, чтобы получить он работает.

(Примечание: выше запрос делает работу в консоли MongoDB.)

+0

Просто позвонить ' Contacts.aggregate() '. Метод определен в модели, и синтаксис один и тот же. –

ответ

2

Попробуйте

Contacts.aggregate({$group: { "_id": { code: "$Code", name: "$Name" } } }, function(err, contacts) { 
    ... 
}); 

Или, с $match, если вам нужно это AgencyTranslation: /^BROADCASTING/ условие

Contacts.aggregate([ 
    { $match : { AgencyTranslation: /^BROADCASTING/ } }, 
    { $group: { "_id": { code: "$Code", name: "$Name" } } } 
], function(err, contacts) { 
    // ... 
}); 
+0

Но это не мангуста, не правда ли, это тот же самый запрос mongodb? – Kannan

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