>백엔드 개발 >Golang >Mongo의 서로 다른 키를 기반으로 하나의 쿼리에서 여러 레코드를 업데이트하는 방법은 무엇입니까?

Mongo의 서로 다른 키를 기반으로 하나의 쿼리에서 여러 레코드를 업데이트하는 방법은 무엇입니까?

PHPz
PHPz앞으로
2024-02-15 11:51:08674검색

如何在一个查询中根据 Mongo 中的不同键更新多条记录?

MongoDB를 사용할 때 때때로 서로 다른 키를 기반으로 여러 레코드를 업데이트해야 하는데 이 문제가 혼란스러울 수 있습니다. 그러나 다행스럽게도 MongoDB에서는 대량 쓰기 작업을 사용하여 이 목표를 달성할 수 있습니다. 대량 쓰기는 단일 작업으로 여러 업데이트, 삽입 또는 삭제 작업을 수행할 수 있는 대량 쓰기 작업입니다. 이 기사에서는 대량 쓰기를 사용하여 Mongo의 다양한 키를 기반으로 여러 레코드를 업데이트하는 방법을 소개합니다.

질문 내용

다음과 비슷한 내용이 있다면...

으아악

insertmany 쿼리에 다음 업데이트를 적용할 수 있나요?

으아악

그렇다면 golang을 사용하면 어떻게 될까요?

구체적으로 collection.updatemany(context.todo(), filter, update),我的 filterupdate를 사용하면 어떻게 될까요?

도움을 주셔서 감사합니다.

해결 방법

각각의 업데이트 문서마다 하나씩 하나로는 이 작업을 collection.updatemany() 调用,因为您无法对不同的匹配文档应用不同的更新文档。您必须多次调用 collection.updatemany() 할 수 없습니다.

한 번의 호출로 이 작업을 효율적으로 수행하려면 collection.bulkwrite()。您必须准备一个不同的 mongo.writemodel문서별 업데이트를 사용할 수 있습니다.

다음과 같을 수도 있습니다:

으아악

위의 슬라이스 리터럴에는 "반복"이 너무 많습니다. 도우미 함수를 사용하여 이를 캡처할 수 있습니다.

으아악

또한 업데이트에 쉽게 정의할 수 있는 로직이 있는 경우 모든 요소를 ​​나열하는 대신 루프를 사용하세요.

으아악

다음과 같은 단일 호출로 모든 업데이트를 수행할 수 있습니다.

으아악

관련 콘텐츠 보기: mongodb 문서 배열 업데이트 및 문서 배열 교체로 교체

위 내용은 Mongo의 서로 다른 키를 기반으로 하나의 쿼리에서 여러 레코드를 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제