json - 查询Mongodb子文档错误将循环结构转换为JSON

标签 json node.js mongodb express

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

{
  "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 属性返回文档列表。

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

最佳答案

TL;博士:

更改 var Lead = Lead.find({"contacts.surname":req.params.name});

致:

varleads=awaitLead.find({"contacts.surname":req.params.name});

说明

model.find() 仅返回一个查询。它不会为您执行查询。因此,“leads”变量当前是一个 Mongoose 查询文档。

当你执行 res.send(leads) 时,express 内部会执行以下操作:

JSON.stringify(leads)

stringify() 无法将循环结构转换为 JSON。因此,出现错误。

如果这里有人可以阐明为什么 Mongoose 查询文档是循环结构,那就太好了!

关于json - 查询Mongodb子文档错误将循环结构转换为JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28296600/

相关文章:

android - 错误 :Execution failed for task ':app:transformClassesWithJarMergingForDebug' in android + volley libraries

node.js - "TypeError: Cannot read property ' 为多个请求推送 ' of null"

python - 聚合 QuerySet 以获得 FileFields 大小的总和

javascript - 如何将排序操作后的序列号插入到mongoDB中?

ajax - 为什么在 WebSockets 可用时使用 AJAX?

javascript - 显示来自 Meteor.users 的用户信息,并使用 Highcharts 显示

json - 在浏览器和 Xcode 控制台中获取不同的 JSON 响应

javascript - $.getJSON 很慢

json - JQ:如何基于正则表达式过滤器从数组中删除对象?

node.js - 如何通过终端(ubuntu 或 windows)查找 google chrome 或 firefox tab url?