我试图通过过滤嵌套对象从Mongo DB获取数据。
集合结构为:
{
"id":"8820624457",
"type":"CreateEvent",
"actor":{
"id":27394937,
"login":"Johnson0608",
"display_login":"Johnson0608",
"gravatar_id":"",
"url":"https://api.github.com/users/Johnson0608",
"avatar_url":"https://avatars.githubusercontent.com/u/27394937?"
},
"repo":{
"id":163744671,
"name":"Johnson0608/test",
"url":"https://api.github.com/repos/Johnson0608/test"
},
"payload":{
"ref":"master",
"ref_type":"branch",
"master_branch":"master",
"description":null,
"pusher_type":"user"
},
"public":true,
"created_at":"2019-01-01T15:00:00Z"
}
我正在尝试通过回购ID获取数据。 我的代码是:
collection.find({'repo.id':id}).toArray(function(err, docs) {
console.log(id);
assert.equal(err, null);
console.log("Found the following records");
console.log(docs);
res.status(200).json({docs});
callback(docs);
});
但是我得到的是空数组,不胜感激,有人可以指出我正确的方向
答案 0 :(得分:1)
MongoDB在值之前比较类型。如果您的id
来自req.params
,则可能以字符串形式传递,而repo.id
似乎是数字。尝试将您的值转换为数字:
const id = +req.params.repoId