8

配列内のオブジェクトの値を CSV にエクスポートする必要があります。私のドキュメントは次のとおりです。

{
    名前:"テスト",
    種類:[
        {タイプ:"A"},
        {タイプ:"B"},
                {タイプ:"C"}
    ]
}

私の目標は、次のような出力を生成することです。

「テスト」、「A」
「テスト」、「B」
「テスト」、「C」

以下も許容されます。

「テスト」、「A、B、C」

私はmongoexportを介してこれを達成しようとしています:

mongoexport -h localhost -d mydb -c mycollection -f name,types.type --csv

残念ながら、私は得ています:

"テスト"、

「types.0.type」などの特定の配列要素の参照に関するドキュメントを見つけましたが、配列の長さは不明です。何か案は?

4

3 に答える 3

1

コレクションを反復処理し、ドキュメントを目的の形式でエクスポートするカスタム スクリプトを作成する必要があります。組み込みの mongoexport は、あなたのようなユースケース向けには設計されていません。

于 2012-05-06T03:39:04.297 に答える
1

Perlに満足している場合は、次の記事の ARJsonLib.pm ライブラリーが、独自の小さなおもちゃを作成するために必要な機能の大部分を提供します。記事のバージョンは、私が一緒にハッキングしたおもちゃのスタブであり、他のものと一緒に必要なことを正確に実行しますが、mongoDB の記事ではないため、必要な機能が 1 つ欠けていることに注意してください。 mongoDB コレクションを作成し、それらを配列に格納しますが、再構築するのは簡単です。コレクションからn 個のドキュメントをプルし、それらを配列にプッシュして、findKeysInJsonColl() を呼び出す何かを自分で作成するだけです。とにかく、いくつかの関数は MongoDB カーソルをパラメーターとして受け取ります。

convertToDojoGrid()
convertToExcel()

ここでもCSV出力が欠落していますが、convertToExcel() に戻すのは簡単です。

例えば

...
my $iRows  = convertToExcel("/tmp/test.xlsx", $oMongoData, "", \@aOutFields, "xlsx");
...

$oMongoData は MongoDB Cursor 参照で、@aOutFields はシートに表示するフィールド/キーを含む配列です。

于 2012-11-15T12:58:18.777 に答える