私たちには、このプロセスを手助けできるドライバがいくつかあります。私はソフトウェア開発の知識を前提としており、よく知られているMongoDBConnection
、MongoDBCommand
、およびMongoDBDataReader
オブジェクトを使用しているMongoDBのADO.NET Providerを紹介します。
まず、あなたはあなたと接続するための接続文字列を作成したいと思うのMongoDBインスタンスをクラウド:あなたは私たちがフラット化がfalseにプロパティセットをオブジェクト持っていることに注意しましょう
string connString = "Auth Database=test;Database=test;Password=test;Port=27117;Server=http://clouddbaddress;User=test;Flatten Objects=false";
、これはそのいずれかのJSONを保証します/ BSONオブジェクトは、未処理のJSON/BSONとして返されます。
接続文字列を作成したら、接続を確立してデータベースからデータを読み取ることができます。将来の使用のために簡単にアクセスできるように、返されたデータを保存することをお勧めします。あなたは、レプリケートするオブジェクトごとにすべてのデータを収集した後
List<string> columns = new List<string>();
List<object> values;
List<List<object>> rows = new List<List<object>>();
using (MongoDBConnection conn = new MongoDBConnection(connString))
{
//create a WHERE clause that will limit the results to newly added documents
MongoDBCommand cmd = new MongoDBCommand("SELECT * FROM SomeTable WHERE ...", conn);
rdr = cmd.ExecuteReader();
results = 0;
while (rdr.Read())
{
values = new List<object>();
for (int i = 0; i < rdr.FieldCount; i++)
{
if (results == 0)
columns.Add(rdr.GetName(i));
values.Add(rdr.GetValue(i));
}
rows.Add(values);
results++;
}
}
、あなたの地元のMongoDBインスタンスへの新しい接続を設定し、新しいドキュメントを挿入するためにクエリを構築することができます。
connString = "Auth Database=testSync;Database=testSync;Password=testSync;Port=27117;Server=localhost;User=testSync;Flatten Objects=false";
using (MongoDBConnection conn = new MongoDBConnection(connString)) {
foreach (var row in rows) {
//code here to create comma-separated strings for the columns
// and values to be inserted in a SQL statement
String sqlInsert = "INSERT INTO backup_table (" + column_names + ") VALUES (" + column_values + ")";
MongoDBCommand cmd = new MongoDBCommand(sqlInsert, conn);
cmd.ExecuteQuery();
}
この時点で、すべての新しいドキュメントが挿入されます。その後、UPDATEコマンドを使用して、ローカルのMongoDBインスタンス内の対応するエントリを更新し、更新された日付/時刻に基づいてフィルタリングするフィルタ(最初はWHERE句)を変更できます。外を見るために
もの:
- あなたが適切に新しい/更新されたエントリをフィルタリングしていることを確認してください。
- SQLクエリに値を入力するときに、引用符で囲む(またはしない)ように変数の型を正しく解釈していることを確認してください。
私たちには、あなたに役立ついくつかのドライバがあります。上記のADO.NET Providerを実演しましたが、driver for writing apps in XamarinとJDBC driver (for Java)もあります。
[Drivers for MongoDB](http://www.cdata.com/drivers/mongodb/)は、クラウドベースのデータベースからローカルデータベースに新しい/更新されたドキュメントをプッシュする独自のアプリケーションを構築できるようにします。私は適切な回答を書いてすぐに投稿します。 –