1

わかりました。mongodb でこれができるかどうかはわかりませんが、次の JSON を通貨 DB に挿入する必要があります。

更新したい部分は exchangehistory で、その日の為替レートのすべての履歴を保持する必要があります。そして翌日、例えば

例えば

{"from":"USD","currentexchange":[{"to":"NZD","rate":"1.3194","updated":"6\/5\/20121:38am"},{"to":"KWD","rate":"0.2807","updated":"6\/5\/20121:38am"},{"to":"GBP","rate":"0.6495","updated":"6\/5\/20121:38am"},{"to":"AUD","rate":"1.0228","updated":"6\/5\/20121:38am"}],"exchangehistory":{"6\/5\/2012":[{"1:38am":[{"to":"NZD","rate":"1.3194","updated":"1:38am"}]},{"1:38am":[{"to":"KWD","rate":"0.2807","updated":"1:38am"}]},{"1:38am":[{"to":"GBP","rate":"0.6495","updated":"1:38am"}]},{"1:38am":[{"to":"AUD","rate":"1.0228","updated":"1:38am"}]}]}}
4

2 に答える 2

0

これをこのような配列に格納しない可能性が非常に高いです。以下を持つフラットなデータ構造を作成します。

{
    from: "USD",
    to: "EUR",
    updated: new DateTime("2012-05-04 13:43"),
    rate: 1.235,
},
{
    from: "USD",
    to: "EUR",
    updated: new DateTime("2012-05-06 13:43"),
    rate: 1.24,
},
{
    from: "USD",
    to: "AUD",
    updated: new DateTime("2012-05-06 13:43"),
    rate: 1.43,
}

ドキュメントが大きくなることはないため、これはデータベースにとって非常に軽量です。また、ドキュメントが大きくなると、移動する必要があります。現在のレートを非常に簡単に照会することもできます。

$collection->find( array( 'from' => 'USD', 'to' => 'EUR' ) )
           ->sort( 'updated' => -1 )->limit( 1 );

そして、すべての履歴情報にアクセスします:

$collection->find( array( 'from' => 'USD', 'to' => 'EUR' ) )
           ->sort( 'updated' => -1 )->skip( 1 );
于 2012-06-05T11:47:46.323 に答える
-1

これは PHP 用ではありませんが、役に立つかもしれません。データベースに保存するには、json 文字列から BSON オブジェクトを作成する必要があります。 JSON からの BSON の作成 MongoDB PHP Driver のチュートリアルとドキュメントも使用できます。それらはここにあります:MongoDB PHP Driver Tutorial

于 2012-06-05T05:56:37.373 に答える