MongoError:在路径'mainCourse中找不到标识符'i'的数组过滤器。$ [i] .subCourse。$ [j] .ppt'
MongoError:
在路径中找不到标识符“i”的数组过滤器
'mainCourse.$[i].subCourse.$[j].ppt'
var qry3 = { F_id : req.params.F_id , "mainCourse.id" : req.params.MC_id };
db.collection('test').updateOne(qry3,{ $push : { "mainCourse.$[i].subCourse.$[j].ppt" : { pageid : pId , pagelink : link+'/ppt/'+fileName } } } ,{arrayFilters: [{ "i.id": req.params.MC_id }, { "j.id" : req.params.SC_id }]} , (e,r)=>{});
2nd try :
db.collection('test').updateOne(qry3,{ $push : { "mainCourse.$.subCourse.ppt" : { pageid : pId , pagelink : link+'/ppt/'+fileName } } } , (e,r)=>{});
Error : MongoError: Cannot create field 'ppt' in element {subCourse: [ { name: \"COMP\", id: \"1\", imageLink: \subCourse/icon.png\", ppt: [], chapters: [] } ]}
{
"_id": "5c66b3918427a5032fc7eb85",
"feild": "SW",
"F_id": "66",
"mainCourse": [
{
"name": "CI",
"id": "1",
"imageLink": "1.png",
"subCourse": [
{
"name": "Comp",
"id": "2",
"imageLink": "2.png",
"ppt": [],
"chapters": []
}]
}]
}
我需要在ppt数组中添加(推送)数据。我怎样才能做到这一点?
回答如下:问题解决了Nodejs版本中存在的问题
如果在nodejs端使用mongodb版本“2.2.34”,则使用下面的syntex
mc和sc =你需要存储的数组位置var qry2 = {F_id:req.params.F_id,mainCourse:{$ elemMatch:{id:req.params.MC_id,subCourse:{$ elemMatch:
{id:req.params.SC_id}}}}}; //对于我的文档你可以在img db.collection('test')中看到.update(qry2,{$ push:{[“mainCourse。”+ mc +“。subCourse。”+ sc +“。ppt”]:{pageid :pId,pagelink:link +'/ ppt /'+ fileName}}});
MongoError:在路径'mainCourse中找不到标识符'i'的数组过滤器。$ [i] .subCourse。$ [j] .ppt'
MongoError:
在路径中找不到标识符“i”的数组过滤器
'mainCourse.$[i].subCourse.$[j].ppt'
var qry3 = { F_id : req.params.F_id , "mainCourse.id" : req.params.MC_id };
db.collection('test').updateOne(qry3,{ $push : { "mainCourse.$[i].subCourse.$[j].ppt" : { pageid : pId , pagelink : link+'/ppt/'+fileName } } } ,{arrayFilters: [{ "i.id": req.params.MC_id }, { "j.id" : req.params.SC_id }]} , (e,r)=>{});
2nd try :
db.collection('test').updateOne(qry3,{ $push : { "mainCourse.$.subCourse.ppt" : { pageid : pId , pagelink : link+'/ppt/'+fileName } } } , (e,r)=>{});
Error : MongoError: Cannot create field 'ppt' in element {subCourse: [ { name: \"COMP\", id: \"1\", imageLink: \subCourse/icon.png\", ppt: [], chapters: [] } ]}
{
"_id": "5c66b3918427a5032fc7eb85",
"feild": "SW",
"F_id": "66",
"mainCourse": [
{
"name": "CI",
"id": "1",
"imageLink": "1.png",
"subCourse": [
{
"name": "Comp",
"id": "2",
"imageLink": "2.png",
"ppt": [],
"chapters": []
}]
}]
}
我需要在ppt数组中添加(推送)数据。我怎样才能做到这一点?
回答如下:问题解决了Nodejs版本中存在的问题
如果在nodejs端使用mongodb版本“2.2.34”,则使用下面的syntex
mc和sc =你需要存储的数组位置var qry2 = {F_id:req.params.F_id,mainCourse:{$ elemMatch:{id:req.params.MC_id,subCourse:{$ elemMatch:
{id:req.params.SC_id}}}}}; //对于我的文档你可以在img db.collection('test')中看到.update(qry2,{$ push:{[“mainCourse。”+ mc +“。subCourse。”+ sc +“。ppt”]:{pageid :pId,pagelink:link +'/ ppt /'+ fileName}}});