2017-02-06 4 views
1

私はコレクションのモンゴダンプを取ることができます。私はmongoコレクションから必要な数の文書だけをダンプすることが可能かどうかを知りたいと思います。私のカタログコレクションには何十万もの文書がありますが、最近の2000件の文書だけが同期目的のダンプとして必要です。モンゴコレクションから文書をどのようにエクスポートするか

答えて

1

はい、あなたは、あなたが最近使用したドキュメントだけで、あなたの文書に類似したフィールドを持っている必要がありますしたいので、あなたがcreated_dateで文書をsortことができ、--query option.Insideクエリを使用して、コレクションからドキュメントの数を制限することができます場合によってはObjectId値が厳密な挿入順序)とクエリを使用して2000へのlimitドキュメントを表していないため、_idでソートしようとしないでください。

しかし、mongodump --queryは、sort and limitの操作を直接サポートしていません。したがって、クエリでいくつかの回避策を実行する必要があります。これはあなたに2000th recordを与える

db.collection.find().sort({created_date:1}).skip(1999).limit(1) 

まず、あなたは、あなたのcreated_dateascending順序に基づいてsortingにより、2000th recordをフェッチすることができます。そのレコードの中にはvalue of created_dateもあります。そのvalueを使用して、あなたのようにmongodump実行できる今:

mongodump --db <db-name> --collection <collection-name> --query '{"created_date":{$lte:{$date:<value-in-milliseconds>}}}' 

なお、あなたは--query doesn't support ISO dates directlyので、ここではミリ秒単位で日付を指定する必要があります。詳細については

、しかし、あなたは例えばのために、別のファイルにクエリを指定することで、クエリ内のISO datesを使用することができます--query

UPDATE

を参照してください:query.jsonとして:

{"created_date": {"$lte": < ISODate("...")-value-of-your-created_date >}} 

次に、mongodumpを次のように実行します。

mongodump --db <db-name> --collection <collection-name> --queryFile query.json 

詳細については、--queryFile

を参照してください。
関連する問題