Consultando Mongodb Subdocuments error Convirtiendo estructura circular a JSON

Tengo un documento con una serie de subdocumentos:

{ "company": "test plc", "address": [ { "addr1": "37", "addr2": "", "addr3": "test", "addr4": "", "addrcity": "", "addrcounty": "test", "addrpostcode": "test" }, { "addr1": "37", "addr2": "", "addr3": "test", "addr4": "", "addrcity": "", "addrcounty": "test", "addrpostcode": "test" }, { "addr1": "37", "addr2": "", "addr3": "test", "addr4": "", "addrcity": "", "addrcounty": "test", "addrpostcode": "test" } ], "contacts": [ { "name": "test", "surname": "testing", "title": "master" }, { "name": "test", "surname": "testing", "title": "master" } ] } 

Lo que me gustaría hacer es devolver una lista de documentos buscando en la propiedad contacts.surname .

 var leads = Lead.find({"contact.surname":req.params.name}); 

Esto provoca un error “Convertir estructura circular a JSON”, pero no estoy seguro de por qué.

añadido en la edición:

Este es mi esquema de colección:

 var leadsSchema = new Schema({ company: String, address: [ { addr1: String, addr2: String, addr3: String, addr4: String, addrcity: String, addrcounty: String, addrpostcode: String } ], contacts: [ { name: String, surname: String, title: String } ] }); var Lead = mongoose.model('leads', leadsSchema); 

Aquí están mis dos enrutadores:

Esto devuelve todo de la colección encontrar:

 router.get('/', function(req, res) { Lead.find({}).exec(function(err, leads) { res.send(leads); }); }); 

Esto provoca el error circular:

 router.get('/findByContactName/:surname', function(req, res) { var leads = Lead.find({"contacts.surname":req.params.name}); res.send(leads); }); 

prueba esto

 router.get('/findByContactName/:surname', function(req, res){ Lead.find({"contacts.surname":req.params.name}).exec(function(err, leads){ res.send(leads); });