查询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); });