MongoDB 는 다단 계 문서 의 데 이 터 를 어떻게 업데이트 합 니까?

새 겨 진 배열 업데이트
다음 데이터(데이터 세트 이름 은 author)를 예 로 들 면:

{name: '    ', documents: ['Flutter     ', '   MySQL', 'MongoDB    ']}
우 리 는 MongoDB 전문 지 북 을 MongoDB 가 전문 적 으로 가리 키 지 않 는 북 으로 바 꿔 야 한다.이것 은 포 함 된 문서 데 이 터 를 수정 하 는 것 에 속한다.이 때 는 MongoDB 에서 제공 하 는 포 지 셔 닝 연산 자$를 사용 해 야 합 니 다.포 지 셔 닝 조작 자 는 대응 하 는 조건 을 일치 시 키 는 데 이 터 를 나타 낸다.예 를 들 어:

db.author.update(
  {name: '    ', documents: 'MongoDB    '}, 
  {'$set': {'documents.$': 'MongoDB     '}}
);
하위 노드 가 배열 인 것 도 마찬가지다.

{
  name: '    ', 
  documents: [
    {name: 'Flutter     ', score: 80}, 
    {name: '   MySQL', score: 90}, 
    {name: 'MongoDB    ', score: 85}
  ]
}
documengs 노드 의 name 과 score 를 수정 해 야 합 니 다.

db.author.update(
  {name: '    ', 'documents.name': 'MongoDB    '},
  {'$set': {
    	'documents.$.name': 'MongoDB     ', 
    	'documents.$.score':88}
  }
);
$포 지 셔 닝 조작 자 는 검색 조건 에서 찾 은 배열 의 데이터 요소 위 치 를 나타 내 는 것 입 니 다.즉,이 위치의 데 이 터 를 조작 하 는 것 을 나타 내 는 것 입 니 다.
하위 문서 속성 업데이트
다음 문서 속성 을 업데이트 할 때 속성 접근 자"를 직접 사용 할 수 있 습 니 다.예 를 들 어 다음 에 praise 를 291 로 업데이트 해 야 합 니 다.

{
  name: '    ', 
  scores: {
    view:  18800, 
    praise: 290, 
    followers: 105
	}
}

db.author.update(
  {name: '    '}, 
  {'$set': {'scores.praise': 291}}
);
하위 문서 에 포 함 된 배열 이 존재 하 는 것 도 비슷 한 작업 입 니 다.예 를 들 어 아래 의 데이터 와 같이'공중 번호'를'위 챗 공중 번호'로 바 꿔 야 합 니 다.

{
  name: '    ', 
  scores: {
    view:  18800, 
    praise: 290, 
    followers: 105,
    platform: ['  ', '   ']
	}
}

db.author.update(
  {'name': '    ', 'scores.platform': '   '},
  {'$set': {'scores.platform.$':'     '}}
);
속성 증가 및 제거
MongoDB 는$push 와$pull 작업 명령 을 제공 하여 속성 을 증가 하거나 제거 하 는 동시에$pop 을 제공 하여 배열 의 첫 번 째 또는 마지막 값 을 제거 합 니 다.우 리 는 이전 문서 에 홈 페이지 속성 을 추가 합 니 다.

db.author.update(
  {name: '    '}, 
  {$push: {homepage: 'https://juejin.cn/user/70787819648695'}}
);
주의해 야 할 것 은 이때 홈 페이지 라 는 배열 이 삽입 되 어 있 습 니 다.그 중의 하 나 는 jejin.cn/user/707878 입 니 다.배열 이 아 닌 속성 을 증가 시 키 려 면$set 명령 을 사용 하면 됩 니 다.pull 을 사용 하여 일치 하 는 속성 을 제거 할 수 있 습 니 다.

db.author.update(
  {name: '    '}, 
  {$pull: {homepage: 'https://juejin.cn/user/70787819648695'}}
);
$pop 작업 시 숫자-1 과 1 을 사용 하여 수미 요 소 를 제거 하고 아래 데이터 에 대해 배열 platform 의 데 이 터 를 제거 합 니 다.

{
  name: '    ',
	scores : {
		view: 18800,
		praise: 290,
		followers: 105,
		platform: ['  ', '   ', '  1', '  2']
	}
}

//        
db.author.update({name: '    '}, {$pop: {'scores.platform': -1}});
//         
db.author.update({name: '    '}, {$pop: {'scores.platform': 1}});
총결산
이 편 에 서 는 MongoDB 의 내장 속성 업데이트 작업 을 소개 합 니 다.주로 포 지 셔 닝 연산 자$의 사용 입 니 다.포 지 셔 닝 부 호 를 통 해 우리 가 수정 해 야 할 데이터 위 치 를 찾 아 업데이트 작업 을 할 수 있 습 니 다.그리고 속성의 추가 와 제거,$push,$pull,$pop 명령 을 통 해 응답 하 는 작업 을 수행 할 수 있 습 니 다.
이상 은 MongoDB 가 다단 계 문서 의 데 이 터 를 어떻게 업데이트 하 는 지 에 대한 상세 한 내용 입 니 다.MongoDB 가 다단 계 문 서 를 업데이트 하 는 지 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 시기 바 랍 니 다!

좋은 웹페이지 즐겨찾기