bulkWrite()를 사용할 수 있습니다. 문서로 컬렉션을 만들자 −
> db.demo105.insertOne( { _id:'101', Name:'Chris', Details:[{ Marks1:60, Marks2:70, Marks3:70 }, { Marks1:70, Marks2:70, Marks3:90 }] } ); { "acknowledged" : true, "insertedId" : "101" }
find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -
> db.demo105.find().pretty();
이것은 다음과 같은 출력을 생성합니다 -
{ "_id" : "101", "Name" : "Chris", "Details" : [ { "Marks1" : 60, "Marks2" : 70, "Marks3" : 70 }, { "Marks1" : 70, "Marks2" : 70, "Marks3" : 90 } ] }
다음은 요소가 존재하지 않는 배열을 삽입하는 쿼리입니다. 그렇지 않으면 여러 조건으로 업데이트합니다. -
> db.demo105.bulkWrite([ ... { "updateOne": { ... "filter": { ... "_id": "101", ... "Details": { ... "$elemMatch": { Marks2: 70, Marks3: 70 } ... } ... }, ... "update": { ... "$set": { "Details.$.Marks3": 96 } ... } ... }}, ... { "updateOne": { ... "filter": { ... "_id": "101", ... "Details": { ... "$not": { ... "$elemMatch": { Marks2: 70, Marks3: 70 } ... } ... } ... }, ... "update": { ... "$push": { "Details": { Marks1: 94, Marks2: 97,Marks3:99} } ... } ... }}, ... { "updateOne": { ... "filter": { "_id": 101 }, ... "update": { ... "$setOnInsert": { ... "Details": [ ... { Marks1: 34, Marks2: 67,Marks3:87 } ... ] ... } ... }, ... "upsert": true ... }} ... ]) { "acknowledged" : true, "deletedCount" : 0, "insertedCount" : 0, "matchedCount" : 2, "upsertedCount" : 1, "insertedIds" : { }, "upsertedIds" : { "2" : 101 } }
find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -
> db.demo105.find().pretty();
이것은 다음과 같은 출력을 생성합니다 -
{ "_id" : "101", "Name" : "Chris", "Details" : [ { "Marks1" : 60, "Marks2" : 70, "Marks3" : 96 }, { "Marks1" : 70, "Marks2" : 70, "Marks3" : 90 }, { "Marks1" : 94, "Marks2" : 97, "Marks3" : 99 } ] } { "_id" : 101, "Details" : [ { "Marks1" : 34, "Marks2" : 67, "Marks3" : 87 } ] }