Docs Menu
Docs Home
/
MongoDB Atlas
/

合成データの生成

項目一覧

  • 前提条件
  • 手順

実際のデータのスキーマに合わせた合成データを生成できます。 合成データは、テストおよび開発環境に役立ちます。

このチュートリアルでは、Atlas クラスターに接続し、Node.js と facer.js を使用して合成データを生成します。 。詳細については、 「 FakerJavaScriptDocs 」 を参照してください。

このチュートリアルの手順を使用して合成データを作成するには、次の手順を実行する必要があります。

  • データのロード先となる Atlas クラスターを作成します。 詳しくは、 クラスター タイプ を参照してください。

  • Node、 npm 、 MongoDB Node.js ドライバーをインストールします。

  • fail.js をインストールします。

    npm install --save-dev @faker-js/faker

クラスターで合成データを生成するには、次の手順に従います。

1
  1. 次のコマンドを実行して、アプリの ディレクトリを作成し、移動します。

    mkdir syntheticdata
    cd syntheticdata
  2. 次のコマンドを実行してプロジェクトを初期化し、 npmにリンクします。

    npm init

    entry point: (index.js)を除くすべてのデフォルト値を受け入れるには、 Enterを押します。 ターミナルがentry point: (index.js)を返したら、このテキストを入力し、 Enterを押します。

    myapp.js

    すべてのデフォルト値を受け入れ、プロンプトが表示されたらYesと入力します。

  3. 次のコマンドを実行して、ウェブ アプリケーション フレームワークであるexpressをインストールします。

    npm install express --save
  4. 作成したディレクトリに、 myapp.jsという名前のファイルを作成します。

2

myapp.jsファイルに次のコードを追加します。 次のプレースホルダー値を自分の値に置き換え、ファイルの内容を保存します。

  • <YOUR-ATLAS-URI>:Atlas クラスターの接続文字列。接続文字列を見つける方法については、「 MongoDB Atlas 接続文字列を見つける 」を参照してください。

  • <DATABASE-NAME>: Atlas で作成するデータベースの名前。

  • <COLLECTION-NAME>: Atlas で作成するコレクションの名前。

// require the necessary libraries
const { faker } = require("@faker-js/faker");
const MongoClient = require("mongodb").MongoClient;
function randomIntFromInterval(min, max) { // min and max included
return Math.floor(Math.random() * (max - min + 1) + min);
}
async function seedDB() {
// Connection URL
const uri = "<YOUR-ATLAS-URI>";
const client = new MongoClient(uri);
try {
await client.connect();
console.log("Connected correctly to server");
const collection = client.db("<DATABASE-NAME>").collection("<COLLECTION-NAME>");
// make a bunch of time series data
let timeSeriesData = [];
for (let i = 0; i < 5000; i++) {
const firstName = faker.person.firstName();
const lastName = faker.person.lastName();
let newDay = {
timestamp_day: faker.date.past(),
cat: faker.lorem.word(),
owner: {
email: faker.internet.email({firstName, lastName}),
firstName,
lastName,
},
events: [],
};
for (let j = 0; j < randomIntFromInterval(1, 6); j++) {
let newEvent = {
timestamp_event: faker.date.past(),
weight: randomIntFromInterval(14,16),
}
newDay.events.push(newEvent);
}
timeSeriesData.push(newDay);
}
await collection.insertMany(timeSeriesData);
console.log("Database seeded with synthetic data! :)");
} catch (err) {
console.log(err.stack);
}
}
seedDB();

たとえば、コードには、 synthetic-data-dbという名前のデータベースとsynthetic-data-collectionという名前のコレクションを指定する次の行が含まれます。

const collection = client.db("synthetic-data-db").collection("synthetic-data-collection");

このコードは、犬に関する時系列コレクションを作成し、各ドキュメントに次のフィールドを追加して、 faker.js の合成データをフィールドに入力します。

  • timestamp_day

  • cat

  • owner.email

  • owner.firstName

  • owner.lastName

  • events

コード内のフィールドと値を、データと一致するフィールドと値に置き換えることができます。 false で利用可能なフィールドの詳細については、次を参照してください。 、詳しくは、 Faker API リファレンス を参照してください。

3

アプリを実行するには、ターミナルで次のコードを実行します。

node myapp.js

このアプリは、 myapp.jsのデータパターンを反映する 5,000 のドキュメントを生成します。

このコードを実行した後、 CTRL + Cを押して実行中のアプリケーションを終了できます。

4
  1. まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。

  3. まだ表示されていない場合は、サイドバーの Clusters をクリックしてください。

    [ Clusters (クラスター) ] ページが表示されます。

5

クラスターの [Browse Collections] ボタンをクリックします。

Data Explorerが表示されます。

6

作成したデータベースの名前を展開し、作成したコレクションの名前をクリックします。 合成データが表示されます。

戻る

気象

項目一覧