查询Mongodb子文档错误将循环结构转换为JSON [英] Querying Mongodb Subdocuments error Converting circular structure to JSON

查看:137
本文介绍了查询Mongodb子文档错误将循环结构转换为JSON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含子文档数组的文档:

I have a document with an array of subdocuments:

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

我想做的是通过搜索contacts.surname属性返回文档列表.

What I would like to do is return a list of documents by searching the contacts.surname property.

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

这会导致错误将圆形结构转换为JSON",但我不确定为什么.

This causes an error "Converting circular structure to JSON" but I am not sure why.

已添加修改内容:

这是我的收集模式:

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

这是我的两个路由器:

这将返回集合查找中的所有内容:

This returns all from the collection find:

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

这篇关于查询Mongodb子文档错误将循环结构转换为JSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆