这是我的问题: 我需要使用以下命令设置嵌套值:
db.getCollection('user').
updateOne(
{ username: 'adh3', 'pf.acc.accnbr': 1234 }
, {
"$set": {
"pf.acc.$.cyc.0": {
"cycid": 1498894685,
"name": "QPT262017_S3",
"startdate": "2017-06-27T09:50",
"enddate": "2017-09-25T09:50",
"age": 99,
"status": "TEST",
"active": true,
"det.1":
{
"createDate": "2017-06-27T09:50",
"moment": "TEST",
"progress": 0,
"age": 0,
"dcycid": 1498557047
}
}
}
})
这是我的收藏架构:
user : {
username: string,
pf : {
pfid: number
acc : [ {
accnbr: number,
cyc : [ {
cycid: number,
name: string,
...
det : [ {
dcycid: number,
...
} ]
} ]
} ]
}
}
我得到的错误如下:
the pf.acc.0.cyc.0.det.1 is not a valid for storage
知道如何解决我的查询?
答案 0 :(得分:0)
我通过将查询分为两部分解决了这个问题:
关于cyc部分。
关于零件。