2016-12-30 1 views
1

ノード、エクスプレス、角度、mongodbの平均スタックで作業します。オブジェクトをエクスポートするときにmongodbと同じ_idをSQL Serverデータベースに転送

注文するモジュールを含むプロジェクト。

お客様が仕様を指定して製品を選択し、カードに追加し、注文を行います。支払方法の中から選択して確定します。

exports.createOrder = function (req, res)の間に、その固有の_idでデータベースmongoへのレコードを作成します。

このデータもSQL Serverデータベースに保存する必要があります。

この時点で、mssqlライブラリを使用してSQL Serverへの接続をさらに作成し、変数sql.Request() .input('Order_ID'), sql.NVarChar (255) order._id)などを割り当てます。

この時点で、テーブルの注文にデータを追加するSQL Server上にあるプロシージャ.execute( 'AddOrder')を呼び出します。

問題は、_id保存オブジェクトが2つのデータベースで異なることです。他の変数は同じです。

SQL Serverデータベースの更新時に_idという新しい行が作成されます。これはmongoと同じですが、古い列を上書きしません。

すべてのデータレコードが保存されます。上書きされる_idを除きます。 例えばmongoデータベースでは、私は586a8871a14d27e81a55533dを持っていますが、mssqlでは586a8871a14d27e81a55533fです。 Mongoは新しい_idを作成します。正確には3バイトのカウンタが変更されます。

これは両方のデータベースで正確なデータを意味しますが、むしろいくつかのデータはmongoからsqlに保存する必要があります。 mssqlの第2の識別子は必要ない/使用されていません。

新しいオブジェクト_idの時点でmongoが作成されないように注文すると、同じオブジェクト_idをSQL Serverデータベースに渡す方法はありますか?

なぜ、たとえば自動インクリメント_idを設定した場合、SQL Serverデータベースの_id列がNULLになるのはなぜですか?

new_idを追加するには、SQL Serverデータベースに対して自動インクリメントに設定されていますか? mongoに書き込むが、プロジェクト全体では未定義である。

答えて

0

Mongo IDとSQL IDはデフォルトで異なります。通常、SQLのデフォルトIDは整数型です。 mongoからSQLにidをコピーできるようにするには、文字列型( "id"と呼ばれる主キー、型文字列)のSQLでIDを作成する必要があります。

詳細な回答のためにいくつかのコードを提供するとよいでしょう。

関連する問題