最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

MongoError:在路径'mainCourse中找不到标识符'i'的数组过滤器。$ [i] .subCourse。$ [j] .ppt'

IT培训 admin 2浏览 0评论

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

发布评论

评论列表 (0)

  1. 暂无评论