回答:
バージョンに関係なく、あなたの例では、これ<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
「マルチ」パラメーター用(複数のレコードを更新)MongoDB .NETドライバーを1か月以上使用しています。.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);