[MONGODB] MongoDB를 가진 배열에서 특정 항목을 삭제
MONGODBMongoDB를 가진 배열에서 특정 항목을 삭제
나는 CodeIgniter의 및 MongoDB를을 사용하여 웹 응용 프로그램을 개발하고있다. 사용자가 파일을 업로드 할 수 있으며 다른 사용자가 그들에 댓글을 달 수 있습니다.
나는 주 파일 문서에 주석라는 배열에 주석을 저장합니다. 이것은 모든 괜찮지 만 내가 어떻게 배열에서 특정 주석을 제거 할 수 있습니까?
사용자가 여러 주석을 추가 할 수 있기 때문에 나는 키로 ID를 사용할 수 없습니다. 어떻게 것 당신은 내가 할 수있는 것이 좋습니다?
이것은 내 댓글 배열입니다 :
"comments": [
{
"user_id": ObjectId("4f240b433dc7937d68030000"),
"user_name": "james",
"user_comment": "This is a comment",
"created_at": "2012-01-2821: 20: 44"
},
{
"user_id": ObjectId("4f240b433dc7937d68030000"),
"user_name": "mandy",
"user_comment": "This is another comment",
"created_at": "2012-01-2821: 31: 07"
}
],
해결법
-
==============================
1.당신은 사용자 ID, 이름이나 설명을 일치시켜 주석 항목을 식별 할 수있는 경우 - 당신은 적절한 조건과 함께 $ 풀 수정 자와 그 코멘트를 사용하여 업데이트 () 명령을 제거 할 수 있습니다.
당신은 사용자 ID, 이름이나 설명을 일치시켜 주석 항목을 식별 할 수있는 경우 - 당신은 적절한 조건과 함께 $ 풀 수정 자와 그 코멘트를 사용하여 업데이트 () 명령을 제거 할 수 있습니다.
위와 같이 할 수없는 경우 (UUID 같은) 주석의 고유 ID를 포함한다.
주석을 삭제하려면 다음을 수행 :
db.coll.update({<cond to identify document}, {$pull: {'comments': {'name': <name>}}} )
당신이 바람직하다 ID를 사용하는 경우 :
db.coll.update({<cond to identify document}, {$pull: {'comments': {'id': <id>}}} )
-
==============================
2.시간이 고유로 어쩌면 당신은 그 'created_at'시간 주석을 제거 할 수 있습니다.
시간이 고유로 어쩌면 당신은 그 'created_at'시간 주석을 제거 할 수 있습니다.
$db.coll.update({cond to identify document},{$pull:{'comments':{'created_at':<>}}})
-
==============================
3.난 당신이 때 삽입 각 주석에 MongoDB의 ID를 추가 가지고 생각합니다. 이 같은 새로운 MongoDB의 ID를 만들 수 있습니다;
난 당신이 때 삽입 각 주석에 MongoDB의 ID를 추가 가지고 생각합니다. 이 같은 새로운 MongoDB의 ID를 만들 수 있습니다;
$comment_id = new MongoID();
지금, 당신은 $ 풀 + @ smoorthy의 대답처럼 $ 업데이트의 ID로 의견을 삭제할 수 있습니다.
from https://stackoverflow.com/questions/9048424/removing-specific-items-from-array-with-mongodb by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB의 배열에서 특정 요소를 받기 [중복] (0) | 2019.12.09 |
---|---|
[MONGODB] (MongoDB의 자바) 배열에 $ 추진 (0) | 2019.12.09 |
[MONGODB] 컬렉션에서 최대 값을 얻는 방법을 MongoDB를 (0) | 2019.12.09 |
[MONGODB] 필드 / 키마다 고유 값 MongoDB의 카운트 수가 (0) | 2019.12.09 |
[MONGODB] 찾을 수없는 클래스 'MongoClient' (0) | 2019.12.09 |