用 arrayFilters 按子文档的 _id 更新嵌套数组元素,shell 里跑得好好的,换成 C# 驱动就"执行成功但一行没改"。这是一个典型的 BSON 类型不匹配问题,而 MongoDB 对此非常安静。
问题现象
集合结构如下,Teams 里嵌了一个 Players 数组:
db.Teams.find()[{_id:ObjectId('000000000000000000002000'用 arrayFilters 按子文档的 _id 更新嵌套数组元素,shell 里跑得好好的,换成 C# 驱动就"执行成功但一行没改"。这是一个典型的 BSON 类型不匹配问题,而 MongoDB 对此非常安静。
集合结构如下,Teams 里嵌了一个 Players 数组:
db.Teams.find()[{_id:ObjectId('000000000000000000002000'