Mongoose 如何从子文档中删除数组元素

Mongoose 如何从子文档中删除数组元素,mongoose,Mongoose,我有一份布局如下的文件: { "A1" : { "B1" : { "C1" : [ ObjectId("123"), ObjectId("456") ], "C2" : [ ObjectId("789"), ObjectId("abc") ]

我有一份布局如下的文件:

{
    "A1" : {
        "B1" : {
            "C1" : [ 
                ObjectId("123"),
                ObjectId("456")
            ],
            "C2" : [ 
                ObjectId("789"),
                ObjectId("abc")
            ]
        },
        "B2" : {
            "C1" : [ 
                ObjectId("def"),
                ObjectId("hij")
            ],
            "C2" : [ 
                ObjectId("klm"),
                ObjectId("nop")
            ]
        }
    }
}
我想使用数组元素的ID从A1.B1.C1中删除其中一个数组元素

我正在使用以下更新代码:

{
    "A1" : {
        "B1" : {
            "$pull" : {
                "C1" : "123"
            }
        }
    }
}
但这会导致以下结果:

{
    "A1" : {
        "B1" : {}
    }
}
我尝试过更新代码的不同变体,例如:

{
    "A1" : {
        "B1" : {
            "C1" : {
                "$pull" : "123"
            }
        }
    }
}
但这会导致以下错误:

Cast to [ObjectId] failed for value "[{"$pull":"123"}]"
有人能提供一些关于如何从子文档中删除特定数组元素的指导吗?

您是否尝试过:

"$pull" : {
   "A1.B1.C1" : mongoose.Types.ObjectId("123")
}

应该能行。

谢谢!你现在是我最喜欢的人!