반응형
Mongodb 존재하지 않는 경우에만 삽입하는 방법(존재하는 경우 업데이트 없음)?
문서가 존재하는 경우 기존 문서를 업데이트하지 않고 문서가 존재하지 않는 경우 어떻게 삽입할 수 있습니까?
다음과 같은 문서가 있다고 가정해 보겠습니다.
{
"company":"test",
"name":"nameVal"
}
컬렉션에 회사가 포함되어 있는지 확인하고 싶습니다.test
존재하지 않는 경우 새 문서를 만들고 싶습니다.만약 그것이 존재한다면 나는 아무것도 하고 싶지 않습니다.나는 노력했다.update
와 함께upsert = true
그러나 기존 문서가 있는 경우 문서를 업데이트합니다.
제가 시도한 것은 다음과 같습니다.
db.getCollection('companies').update(
{
"company": "test"
},
{
"company": "test",
"name": "nameVal2"
},
{upsert:true}
)
하나의 쿼리를 사용하여 이 문제를 해결하는 데 도움을 주시면 감사하겠습니다.
db.companies.updateOne(
{"company": "test"},
{ $setOnInsert: { "name": "nameVal2", ... } },
{ upsert: true }
)
이 업데이트 작업이 삽입을 수행하지 않는 경우,$setOnInsert
아무 효과도 없을 것입니다.그래서 그.name
삽입 시에만 업데이트됩니다.
편집: 제 솔루션은 원래 게시물에서 요청한 것이 아닌 어레이에서만 작동한다고 들었습니다.
어레이를 사용하는 경우 $SetOn 대신 $addToSet: 연산자를 사용할 수 있습니다.삽입.
db.companies.updateOne(
{"company": "test"},
{ $addToSet: { ["name": "nameValue"]} },
{ new: true })
)
언급URL : https://stackoverflow.com/questions/48220677/mongodb-how-to-insert-only-if-does-not-exists-no-update-if-exist
반응형
'programing' 카테고리의 다른 글
각 행의 여러 인수를 사용하여 각 데이터 프레임 행에 적용 유사 함수 호출 (0) | 2023.06.25 |
---|---|
Spring Boot에서 종속성을 선택적으로 업그레이드하는 방법? (샘플 케이스: Spring Data) (0) | 2023.06.20 |
파이썬에서 인쇄 대신 로깅을 사용하는 이유는 무엇입니까? (0) | 2023.06.20 |
SQL Server Express로 bak 파일을 가져오는 방법 (0) | 2023.06.20 |
ClosedX를 사용하여 Excel 파일에 추가ML (0) | 2023.06.20 |