MongoDB에 레코드가 없는 경우 update() 함수를 사용하여 레코드를 삽입할 수 있습니다. 개념을 이해하기 위해 문서로 컬렉션을 만들어 보겠습니다. 문서로 컬렉션을 생성하는 쿼리는 다음과 같습니다 -
> db.insertIfNotExistsDemo.insertOne({"StudentName":"Mike","StudentAge":21}); { "acknowledged" : true, "insertedId" : ObjectId("5c7eec7b559dd2396bcfbfc2") } > db.insertIfNotExistsDemo.insertOne({"StudentName":"Sam","StudentAge":22}); { "acknowledged" : true, "insertedId" : ObjectId("5c7eec97559dd2396bcfbfc3") }
find() 메서드를 사용하여 컬렉션의 모든 문서를 표시합니다. 쿼리는 다음과 같습니다 -
> db.insertIfNotExistsDemo.find().pretty(); The following is the output: { "_id" : ObjectId("5c7eec7b559dd2396bcfbfc2"), "StudentName" : "Mike", "StudentAge" : 21 } { "_id" : ObjectId("5c7eec97559dd2396bcfbfc3"), "StudentName" : "Sam", "StudentAge" : 22 }
레코드가 이미 존재하지 않는 경우 레코드를 삽입하는 쿼리는 다음과 같습니다. −
> key = {"StudentName":"David"} { "StudentName" : "David" } > value = {"StudentName":"David","StudentAge":26} { "StudentName" : "David", "StudentAge" : 26 } > db.insertIfNotExistsDemo.update(key, value, upsert=true);
다음은 출력입니다 -
WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : ObjectId("5c7eecd4c743760e97af8261") })
컬렉션의 모든 문서를 확인합시다. 쿼리는 다음과 같습니다 -
> db.insertIfNotExistsDemo.find().pretty();
다음은 출력입니다 -
{ "_id" : ObjectId("5c7eec7b559dd2396bcfbfc2"), "StudentName" : "Mike", "StudentAge" : 21 } { "_id" : ObjectId("5c7eec97559dd2396bcfbfc3"), "StudentName" : "Sam", "StudentAge" : 22 } { "_id" : ObjectId("5c7eecd4c743760e97af8261"), "StudentName" : "David", "StudentAge" : 26 }
샘플 출력을 보면 "StudentName":"David" 및 "StudentAge":26이 성공적으로 삽입되었습니다.