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": []
}]
}]
}我需要在中添加(推送)数据。我该怎么做?
发布于 2019-02-16 07:30:33
问题解决了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,页面链接:link+‘ppt/’+fileName}})中看到;
https://stackoverflow.com/questions/54720162
复制相似问题