MongoDB: 한 필드에 있는 모든 문서 업데이트
내 수집품에는foo가정해서
의 각 인스턴스foo에는 lastLookedAt라고 하는 필드가 있습니다.이 필드는 에폭 이후 UNIX 타임스탬프입니다.MongoDB 클라이언트를 통해 모든 기존 문서(약 20,000개)의 타임스탬프를 현재 타임스탬프로 설정할 수 있으면 좋겠습니다.
어떻게 대처하면 좋을까요?
예를 들어 버전에 관계없이<update>다음과 같습니다.
{ $set: { lastLookedAt: Date.now() / 1000 } }
단, MongoDB 버전에 따라 쿼리는 다르게 표시됩니다.버전에 관계없이 빈 조건이 모든 문서와 일치해야 합니다.Mongo 쉘 또는 임의의 MongoDB 클라이언트:
db.foo.updateMany( {}, <update> )
{}조건입니다(빈 조건은 임의의 문서와 일치합니다).
db.foo.update( {}, <update>, { multi: true } )
{}조건입니다(빈 조건은 임의의 문서와 일치합니다).{multi: true}"복수 문서 업데이트" 옵션입니다.
db.foo.update( {}, <update>, false, true )
{}조건입니다(빈 조건은 임의의 문서와 일치합니다).false"upsert" 파라미터의 경우true는 "multi" 파라미터(복수의 레코드 갱신)에 대한 것입니다.
이 코드가 도움이 됩니다.
Model.update({
'type': "newuser"
}, {
$set: {
email: "abc@gmail.com",
phoneNumber:"0123456789"
}
}, {
multi: true
},
function(err, result) {
console.log(result);
console.log(err);
})
MongoDB를 사용하고 있습니다.NET 드라이버는 한 달이 조금 넘었습니다.를 사용하여 실행한다면.NET 드라이버, 컬렉션 오브젝트에 Update 메서드를 사용합니다.먼저 관심 있는 모든 문서를 얻을 수 있는 쿼리를 작성하고 변경하고자 하는 필드에 대한 업데이트를 수행합니다.Mongo의 업데이트는 첫 번째 문서에만 영향을 미치며 쿼리에서 생성된 모든 문서를 업데이트하려면 '다중' 업데이트 플래그를 사용해야 합니다.샘플 코드는 다음과 같습니다.
var collection = db.GetCollection("Foo");
var query = Query.GTE("No", 1); // need to construct in such a way that it will give all 20K //docs.
var update = Update.Set("timestamp", datetime.UtcNow);
collection.Update(query, update, UpdateFlags.Multi);
mongodb 메서드를 사용하여 여러 문서를 업데이트할 수 있습니다.
간단한 쿼리는 다음과 같습니다.
db.collection.updateMany(filter, update, options)
uppdate에 대한 자세한 내용은 여기를 참조하십시오.
요건에 따라 업데이트 코드는 다음과 같습니다.
User.updateMany({"created": false}, {"$set":{"created": true}});
여기서 $set을 사용해야 합니다.왜냐하면 작성한 내용을 true에서 false로 변경하고 싶기 때문입니다.참조용.문서 전체를 변경하려면 $set을 사용할 필요가 없습니다.
언급URL : https://stackoverflow.com/questions/9038547/mongodb-update-every-document-on-one-field
'source' 카테고리의 다른 글
| WP 멀티사이트 사이트 간에 ACF 필드 동기화 (0) | 2023.02.16 |
|---|---|
| ES2015 모듈에서 "이 구문을 사용하려면 가져온 도우미가 필요하지만 모듈 'tslib'을 찾을 수 없습니다" (0) | 2023.02.16 |
| 입력 유형 Number에서 +,-e를 차단하는 방법 (0) | 2023.02.16 |
| useState와 useEffect의 차이점은 무엇입니까? (0) | 2023.02.16 |
| 최적의 사용자 역할 권한 데이터베이스 설계 프랙티스 (0) | 2023.02.16 |