이것이 내 데이터라고 가정합시다.
{
"_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)"
}
]
}
]
}
그리고 "Product 5"를 삭제하고 싶습니다. mongo로 어떻게 할 수 있습니까? (루프 및 / 또는 데이터 변환을 수행 할 필요가 없습니까?
여기에 설명 된 방법을 시도했습니다 : MongoDB의 배열 개체에서 특정 개체를 삭제하는 방법
그리고 여기에 하위 배열 내부의 Mongodb 업데이트 작업
작동하지 않는 이유는 내 개체가 이중 중첩되어 있기 때문이라고 가정합니다. 나는 내가 생각하는 해결책을 찾으려고 노력해 왔으며 오히려 피하고 싶은 데이터 조작과 관련이 있습니다.
도움 / 제안을 많이 주시면 감사하겠습니다.
연결하는 첫 번째 질문은 기본적으로 동일한 질문입니다. 나는 당신이 무엇을 시도했는지 잘 모르겠지만 이것은 (셸에서) 작동합니다.
db.test.update(
{
"_id" : ObjectId("52892936b996cc760d000002"),
'subcategories.subcategory': 'Alpha'
},
{$pull: {'subcategories.$.products': {name: 'Product 5'}}})
쿼리 개체 는 연산자 를 통해 subcategory
대상으로 지정할 요소를 식별합니다 .$pull
products
$
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다