Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

사용자 정의 _id 값을 사용하여 문서가 존재하지 않는 경우 삽입하는 동안 MongoDB에서 Upsert?

<시간/>

이를 위해 insert()를 사용해야 합니다. 사용자 정의 _id 값을 삽입할 때마다 문서가 이미 사용자 정의 _id 값으로 존재하면 오류가 표시됩니다.

먼저 문서로 컬렉션을 만들어 보겠습니다. 이에 동일한 문서를 다시 추가하려고 했으나 오류가 발생했습니다.

> db.customIdDemo.insert({"_id":1,"학생 이름":"John"});WriteResult({ "nInserted" :1 })> db.customIdDemo.insert({"_id":1 ,"StudentName":"Carol"});WriteResult({ "nInserted":0, "writeError":{ "code":11000, "errmsg":"E11000 중복 키 오류 수집:admin.customIdDemo 인덱스:_id_ dup 키 :{ :1.0 }" }})> db.customIdDemo.insert({"_id":2,"학생 이름":"캐롤"});WriteResult({ "nInserted" :1 })> db.customIdDemo.insert( {"_id":2,"StudentName":"Carol"});WriteResult({ "nInserted" :0, "writeError" :{ "code" :11000, "errmsg" :"E11000 중복 키 오류 수집:admin. customIdDemo 인덱스:_id_ dup 키:{ :2.0 }" }})> db.customIdDemo.insert({"_id":3,"StudentName":"Chris"});WriteResult({ "nInserted" :1 }) 

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다.

> db.customIdDemo.find().pretty();

그러면 다음과 같은 출력이 생성됩니다.

{ "_id" :1, "StudentName" :"John" }{ "_id" :2, "StudentName" :"Carol" }{ "_id" :3, "StudentName" :"Chris" }