답변:
예를 들어 버전에 관계없이 <update>
is는 다음과 같습니다.
{ $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"매개 변수 용입니다 (여러 레코드 업데이트)나는 한 달 넘게 MongoDB .NET 드라이버를 사용하고 있습니다. .NET 드라이버를 사용하여 수행한다면 컬렉션 객체에서 Update 메소드를 사용합니다. 먼저 관심있는 모든 문서를 가져올 쿼리를 구성하고 변경하려는 필드를 업데이트합니다. Mongo의 업데이트는 첫 번째 문서에만 영향을 미치며 쿼리 결과로 생성 된 모든 문서를 업데이트하려면 'Multi'업데이트 플래그를 사용해야합니다. 샘플 코드는 다음과 같습니다.
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);