У меня есть документ со следующим макетом:
{
"A1" : {
"B1" : {
"C1" : [
ObjectId("123"),
ObjectId("456")
],
"C2" : [
ObjectId("789"),
ObjectId("abc")
]
},
"B2" : {
"C1" : [
ObjectId("def"),
ObjectId("hij")
],
"C2" : [
ObjectId("klm"),
ObjectId("nop")
]
}
}
}
Я бы хотел удалить один из элементов массива из A1.B1.C1
, используя их ID.
Я использую следующий код обновления:
{
"A1" : {
"B1" : {
"$pull" : {
"C1" : "123"
}
}
}
}
Но это приводит к следующему:
{
"A1" : {
"B1" : {}
}
}
Я пробовал разные варианты кода обновления, например:
{
"A1" : {
"B1" : {
"C1" : {
"$pull" : "123"
}
}
}
}
Но это приводит к следующей ошибке:
Cast to [ObjectId] failed for value "[{"$pull":"123"}]"
Может ли кто-нибудь дать некоторые рекомендации относительно того, как удалить конкретный элемент массива из вложенного поддокумента?