복붙노트

[MONGODB] 명령을 삽입하여 MongoDB의 "upsert"옵션이 있습니까?

MONGODB

명령을 삽입하여 MongoDB의 "upsert"옵션이 있습니까?

나는이 바보 같은 질문이있을 수 있습니다 알고 있지만, 나는 MongoDB의 삽입에 upsert 옵션이 있다는 것을 전자 책을 읽었다. 나는 이것에 대해 적절한 문서를 찾을 수 없습니다. 누군가가 이것에 대해 저를 교육 할 수 있습니까?

해결법

  1. ==============================

    1.upsert는 "어떤 문서가 쿼리 기준과 일치하지 않는 새 문서를 만듭니다"라는 작업으로 정의되기 때문에 명령 삽입 upsertsin을위한 곳이 없습니다. 이 업데이트 명령에 대한 옵션입니다. 당신이 명령을 실행하면이 문서 일치하는 쿼리, 또는 문서에 삽입 등의 인수로 업데이트로 기술 된 경우는 갱신으로 작동 아래와 같이.

    upsert는 "어떤 문서가 쿼리 기준과 일치하지 않는 새 문서를 만듭니다"라는 작업으로 정의되기 때문에 명령 삽입 upsertsin을위한 곳이 없습니다. 이 업데이트 명령에 대한 옵션입니다. 당신이 명령을 실행하면이 문서 일치하는 쿼리, 또는 문서에 삽입 등의 인수로 업데이트로 기술 된 경우는 갱신으로 작동 아래와 같이.

    db.collection.update(query, update, {upsert: true})
    

    MongoDB를 3.2 replaceOne를 추가합니다 :

    db.collection.replaceOne(query, replacement, {upsert: true})
    

    이는 유사한 행동을 가지고 있지만, 그 교체는 업데이트 연산자를 포함 할 수 없습니다.

  2. ==============================

    2.PKD에서 제공하는 링크에서와 같이, db.collection.insert ()는 더 upsert 가능성을 제공하지 않습니다. 대신 삽입 삽입 몽고 모음에 새 문서. Upsert가 db.collection.update () 및 db.collection.save만을 사용 가능 ().

    PKD에서 제공하는 링크에서와 같이, db.collection.insert ()는 더 upsert 가능성을 제공하지 않습니다. 대신 삽입 삽입 몽고 모음에 새 문서. Upsert가 db.collection.update () 및 db.collection.save만을 사용 가능 ().

    당신이 컬렉션에 이미있는) (db.collection.insert에 문서를 전달하는 일이 수행되므로 기존 _id 유사 _id가있는 경우, 그것은 중복 키 예외가 발생합니다.

  3. from https://stackoverflow.com/questions/19974216/is-there-an-upsert-option-in-the-mongodb-insert-command by cc-by-sa and MIT license