查询Mongodb子文档错误将圆形结构转换为JSON

我有一个包含一系列子文档的文档:

{ "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" } ] } 

我想要做的是通过searchcontacts.surname属性返回文档列表。

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

这会导致一个错误“将圆形结构转换为JSON”,但我不知道为什么。

添加编辑:

这是我的集合架构:

 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); 

这里是我的两个路由器:

这将返回所有来自集合的查找:

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

这会导致循环错误:

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

尝试这个

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