반응형
MongoDB, 배열에서 객체 제거
문서:
{
_id: 5150a1199fac0e6910000002,
name: 'some name,
items: [{
id: 23,
name: 'item name 23'
},{
id: 24,
name: 'item name 24'
}]
}
배열에서 특정 개체를 가져 오는 방법이 있습니까? IE는 항목 배열에서 ID가 23 인 전체 항목 개체를 어떻게 가져옵니다.
나는 시도했다 :
db.mycollection.update({'_id': ObjectId("5150a1199fac0e6910000002")}, {$pull: {id: 23}});
그러나 나는 '풀'을 올바르게 사용하고 있지 않다고 확신합니다. 내가 이해하는 바에서 pull은 객체가 아닌 배열에서 필드를 가져옵니다.
전체 개체를 배열에서 꺼내는 방법에 대한 아이디어.
보너스로 나는 mongoose / nodejs에서 이것을 시도하고 있으며, 이런 유형의 것이 mongoose API에 있는지 확실하지 않지만 찾을 수 없습니다.
시험..
db.mycollection.update(
{'_id': ObjectId("5150a1199fac0e6910000002")},
{ $pull: { "items" : { id: 23 } } },
false,
true
);
다음과 같은 문서가 있습니다.
주소 배열에서 주소를 삭제해야합니다
인터넷에서 많이 검색 한 후 해결책을 찾았습니다.
Customer.findOneAndUpdate(query, {$pull: {address: addressId}}, function(err, data){
if(err) {
return res.status(500).json({'error' : 'error in deleting address'});
}
res.json(data);
});
my database:->
{
"_id" : ObjectId("5806056dce046557874d3ab18"),
"data" : [
{
"id" : 1
},
{
"id" : 2
},
{
"id" : 3
}
]
}
MY QUERY:->
db.getCollection('play_table').update({},{$pull:{"data":{"id":3}}},{multi:true}
OutPut:->
{
"_id" : ObjectId("5806056dce046557874d3ab18"),
"data" : [
{
"id" : 1
},
{
"id" : 2
}
]
}
사용 $pull
데이터를 제거하는
return this.mobiledashboardModel
.update({"_id": args.dashboardId}, { $pull: {"viewData": { "_id": widgetId}}})
.exec()
.then(dashboardDoc => {
return {
result: dashboardDoc
}
});
시도해 볼 수도 있습니다.
db.getCollection('docs').update({ },{'$pull':{ 'items':{'id': 3 }}},{multi:true})
참고 URL : https://stackoverflow.com/questions/15641492/mongodb-remove-object-from-array
반응형
'Program Tip' 카테고리의 다른 글
Pandas 데이터 프레임 열을 정수가 아닌 문자열로 가져 오기 (0) | 2020.11.01 |
---|---|
웹 사이트에서 사용자 정의 글꼴을 사용하려면 어떻게합니까? (0) | 2020.11.01 |
DIV의 "위치"속성의 기본값은 무엇입니까? (0) | 2020.11.01 |
NPM은 .gitignore에 나열된 파일을 무시합니까? (0) | 2020.11.01 |
NSString containsString 충돌 (0) | 2020.11.01 |