Давайте предположим, что это мои данные:Как удалить объект внутри массива, внутри объекта внутри массива с MongoDB
{
"_id" : ObjectId("52892936b996cc760d000002"),
"created_at" : ISODate("2013-11-17T20:38:14.248Z"),
"name" : "Two",
"subcategories" : [
{
"subcategory" : "Alpha",
"products" : [
{
"name" : "Product 5",
"primary_price" : "2",
"secondary_price" : "3",
"created_at" : "Sun Nov 17 2013 20:39:20 GMT+0000 (GMT)"
},
{
"name" : "Product 7",
"primary_price" : "2",
"secondary_price" : "3",
"created_at" : "Sun Nov 17 2013 20:39:31 GMT+0000 (GMT)"
}
]
},
{
"subcategory" : "Bravo",
"products" : [
{
"name" : "Product 6",
"primary_price" : "2",
"secondary_price" : "3",
"created_at" : "Sun Nov 17 2013 20:39:26 GMT+0000 (GMT)"
},
{
"name" : "Product 8",
"primary_price" : "2",
"secondary_price" : "3",
"created_at" : "Sun Nov 17 2013 20:39:38 GMT+0000 (GMT)"
},
{
"name" : "Apple",
"primary_price" : "5",
"secondary_price" : "13",
"created_at" : "Sat Nov 23 2013 12:00:18 GMT+0000 (GMT)"
},
{
"name" : "Lemon",
"primary_price" : "9",
"secondary_price" : "13",
"created_at" : "Sat Nov 23 2013 12:00:32 GMT+0000 (GMT)"
}
]
}
]
}
И я хотел бы, чтобы удалить «Продукт 5» Как я могу сделать это с Монго (надеюсь, без цикла и/или делать какие-либо преобразования данных
Я попробовал метод, описанный здесь: how to delete a specific object from array object in MongoDB
здесь Deleting a single object from an array of objects in MongoDB
и здесь Mongodb update operation inside sub array
Я предполагаю, что причина, это не сработало, потому что мой объект является двойной вложенной. Я пытался найти решение, которое я придумал, включая манипуляции с данными, которые я бы предпочел избежать.
Помощь/предложение было бы высоко оценено.
Но если понимать это правильно, это удалит каждый экземпляр «Продукта 5», который находится внутри подкатегории «Альфа». Это не то, что мне нужно. Я хочу удалить только «Продукт 5», который находится внутри подкатегории «Альфа», которая находится внутри идентификатора объекта «ObjectId» («52892936b996cc760d000002» «.) Как я могу это сделать? Или я ошибаюсь? – WagnerMatosUK
@WagnerMatosUK OK, тогда вам просто нужно добавьте это как еще один запрос. См. обновленный ответ. – JohnnyHK
Спасибо, Джонни! Это сработало как шарм! – WagnerMatosUK