ノード、エクスプレス、角度、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に書き込むが、プロジェクト全体では未定義である。