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

타임스탬프가 없는 경우에만 추가하는 MongoDB 쿼리


이를 위해 MongoDB에서 upsert와 multi를 사용하십시오 -

화이팅 − true로 설정하면 쿼리 기준과 일치하는 문서가 없을 때 새 문서를 생성합니다. 기본값은 false이며 일치하는 항목이 없으면 새 문서를 삽입하지 않습니다.

다중 - f가 true로 설정되면 쿼리 기준을 충족하는 여러 문서를 업데이트합니다. false로 설정하면 하나의 문서를 업데이트합니다. 기본값은 false입니다.

문서로 컬렉션을 만들자 −

> db.demo479.insertOne({"DueDate":new ISODate("2020-01-10"),"Name":"Chris"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e820733b0f3fa88e2279094")
}
> db.demo479.insertOne({"Name":"David"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e820748b0f3fa88e2279095")
}
> db.demo479.insertOne({"DueDate":new ISODate("2019-12-31"),"Name":"Bob"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e82075fb0f3fa88e2279096")
}
> db.demo479.insertOne({"Name":"Carol"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e820767b0f3fa88e2279097")
}

find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -

> db.demo479.find();

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" : ObjectId("5e820733b0f3fa88e2279094"), "DueDate" : ISODate("2020-01-
10T00:00:00Z"), "Name" : "Chris" }
{ "_id" : ObjectId("5e820748b0f3fa88e2279095"), "Name" : "David" }
{ "_id" : ObjectId("5e82075fb0f3fa88e2279096"), "DueDate" : ISODate("2019-12-
31T00:00:00Z"), "Name" : "Bob" }
{ "_id" : ObjectId("5e820767b0f3fa88e2279097"), "Name" : "Carol" }

다음은 타임스탬프 필드가 없는 경우에만 추가하는 쿼리입니다. −

> db.demo479.update({DueDate:{$exists:false}}, {$set : {"DueDate":new Date}}, {upsert:false,
multi:true});
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -

> db.demo479.find();

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" : ObjectId("5e820733b0f3fa88e2279094"), "DueDate" : ISODate("2020-01-
10T00:00:00Z"), "Name" : "Chris" }
{ "_id" : ObjectId("5e820748b0f3fa88e2279095"), "Name" : "David", "DueDate" :
ISODate("2020-03-30T14:52:29.656Z") }
{ "_id" : ObjectId("5e82075fb0f3fa88e2279096"), "DueDate" : ISODate("2019-12-
31T00:00:00Z"), "Name" : "Bob" }
{ "_id" : ObjectId("5e820767b0f3fa88e2279097"), "Name" : "Carol", "DueDate" :
ISODate("2020-03-30T14:52:29.656Z") }