반응형
update_one raise ValueError를 사용하여 레코드를 뒤집는 이유는 무엇입니까?
키가 존재하지 않는 경우 레코드를 컬렉션에 추가합니다.[MongoDB][1]에서 제공하는 기능은 다음과 같습니다.upsert
이를 위해 저는 했습니다.
db.collection.update({"_id":"key1"},{"_id":"key1"},True)
이것은 효과가 있는 것 같습니다.
그러나 Pymongo 설명서에는 업데이트가 더 이상 사용되지 않으며 다음 용도로 사용된다고 나와 있습니다.update_one()
.
그러나:
db.collection.update_one({"_id":"key1"},{"_id":"key1"},True)
제공:
raise ValueError('update only works with $ operators')
ValueError: update only works with $ operators
나는 왜 그런지 정말 이해할 수 없습니다.update_one
다른 것이고 왜 내가 사용해야 하는지에 대한 이유.$
교환입니다.누가 도와줄 수 있습니까?
업데이트 연산자를 지정하지 않았기 때문입니다.예를 들어.id
값 사용:
db.collection.update_one({"_id":"key1"}, {"$set": {"id":"key1"}}, upsert=True)
Mongo 셸에서는 문서를 새 문서로 바꾸기만 하면 됩니다.
사용하다replace_one()
대신에update_one()
의 세 번째 매개 변수replace_one()
이라upsert
,너무.
db.collection.replace_one({"_id": "key1"}, {"_id": "key1"}, True)
제 개인적인 의견은 이것의 구현입니다.update_one()
MongoDB 클라이언트의 동작과 일치하지 않습니다.그upsert
의 옵션.update_one()
사실은 의미가 없습니다.하지만 pyMongo의 개발자들은 이것을 단지 구별하기 위해 사용하기를 원할지도 모릅니다.update_one()
그리고.replace_one()
.
언급URL : https://stackoverflow.com/questions/30605638/why-does-upsert-a-record-using-update-one-raise-valueerror
반응형
'programing' 카테고리의 다른 글
Xcode 7이 *.dylib이 아닌 *.tbd로 표시되는 이유는 무엇입니까? (0) | 2023.05.15 |
---|---|
파일 ....database1.mdf에 대해 자동 이름이 지정된 데이터베이스를 연결하지 못했습니다. (0) | 2023.05.15 |
파일을 '커밋'하고 내용 변경을 무시할 수 있습니까? (0) | 2023.05.15 |
Bash를 사용하여 파일에 특정 문자열이 포함되어 있는지 확인하는 방법 (0) | 2023.05.10 |
Powershell ISE 내의 다른 PS1 스크립트에서 PowerShell 스크립트 PS1 호출 (0) | 2023.05.10 |