【发布时间】:2019-10-09 02:01:31
【问题描述】:
更新 Mongo db 时,我想更新多个嵌套数组中的文档。但是当我尝试更新它时,我的查询都没有工作。以下是现有表:
Array
(
[0] => Array
(
[_id] => MongoId Object
(
[$id] => 5ce268ef6803fa8f237b23c6
)
[member_number] => 26b091bdd3f9505b2103a187f3ac6643
[member_forename] => 1d40521662cc484d7c06992c61303ba6
[member_surname] => 581c78bf6fe11cc0ff53a805a100d441
[certificates] => Array
(
[0] => Array
(
[member_id] => MongoId Object
(
[$id] => 5ce268ef6803fa8f237b23c6
)
[certificate_id] => MongoId Object
(
[$id] => 5ce4dd3d6803fa15454cbed5
)
[skills_completed] => N
[certificate_issued] => N
[details] => Array
(
[0] => Array
(
[member_id] => MongoId Object
(
[$id] => 5ce268ef6803fa8f237b23c6
)
[session_id] => MongoId Object
(
[$id] => 5ce4f1a96803fa574e4cbede
)
[mark_status] => A
[cd_status] => A
[gradeId] => MongoId Object
(
[$id] => 5ca48ccfa36f74db9a8a0620
)
[gradeKey] => NP
[achieved_date] => MongoDate Object
(
[sec] => 1558531565
[usec] => 713000
)
[detail_id] => MongoId Object
(
[$id] => 5ce4dd526803fa1f454cbed7
)
[marked_by] => MongoId Object
(
[$id] => 5cb5622a6803fa640b7b23c7
)
)
)
[certificate_issued_by] =>
[certificate_session_id] =>
[sc_date] =>
)
[updated_at] => MongoDate Object
(
[sec] => 1558341930
[usec] => 482000
)
)
)
我想更新嵌套在证书内的详细信息部分之一。证书数组在成员表内。
我的匹配条件是 _id = member id , 证书.certificate_id=xxxx,
certificates.details.detail_id=xxxx
我有完整的数组,它将替换细节数组的第零位。如何做到这一点?
【问题讨论】:
标签: mongodb mongodb-query