如何在mongodb中的文档数组中找到元素?
我有一个像下面这样的代码。如何在mongodb中的文档数组中找到元素?
router.get('/Child_Profile/:SchoolId/:childId',function(req,res,next){
childModel.find({"schoolid":req.params.SchoolId,"students[]":req.params.ChildId}, function (err, result) {
if (err)
{
return console.log(err);
}
res.json(result);
});
});
防爆系列
{
"schoolid":"1wer",
"students":["121","232"],
"profilepic":"http://wed"
}
虽然我发现使用schoolid学生信息和studentid上面的架构中,只有schoolid发现,不与studentid。在此先感谢
您已经使用students as an array - students[]
,只使用学生并传递studentid的值,查询将返回结果。
Mongo shell query for the collection
{
"_id" : ObjectId("59e9cfd4f4896dbabfc15f45"),
"schoolid" : "1wer",
"students" : [
"121",
"232"
],
"profilepic" : "http://wed"
}
db.collection.find({students:"121"});
修改后的查询
router.get('/Child_Profile/:SchoolId/:childId',function(req,res,next){
childModel.find({"schoolid":req.params.SchoolId,"students":req.params.ChildId}, function (err, result) {
if (err)
{
return console.log(err);
}
res.json(result);
});
});
已经试过了,它显示了一个空数组 –
请检查'req.params.ChildId'的值,并检查您可以查询直接传递值(这里''学生':'123'',看看结果是什么。 –
是啊...它的工作。谢谢Dude ....其实,错误代替了ChildId,我给了childId。 –
AM “学生”: “121232”],或许应该是 “学生”: “121”, “232”]?你有那里字符串“121,232”你使用该值或121搜索? –
尽管如此,我使用$,它只是与schoolid进行比较。我用像下面的childModel.find({$和:[{“schoolid”:req.params.SchoolId},{“students []”:req.params.ChildId}]},function(err,result){ –
yeah..its“students”:[“121”,“232”] –