Create Many New Documents ( mongodb)
One script reply has been approved by the moderators Verified

Created by adam186 96 days ago Viewed 63 times 1 Point

No comments yet

Login to be able to comment
Points: 0
deno
One script reply has been approved by the moderators
Ap­pro­ved
import { Resource } from "https://deno.land/x/windmill@v1.70.1/mod.ts";
import { MongoClient } from "https://deno.land/x/atlas_sdk@v1.0.3/mod.ts";

/**
 * @param data_source For example: `Cluster0`
 */
export async function main(
  auth: Resource<"mongodb_rest">,
  data_source: string,
  database: string,
  collection: string,
  documents: Record<string, any>[]
) {
  const client = new MongoClient({
    endpoint: auth.endpoint,
    dataSource: data_source,
    auth: { apiKey: auth.api_key },
  });
  const docs = client.database(database).collection(collection)

  let items: Record<string, any>[]
  try {
    items = documents.map(doc => typeof doc === 'string' ? JSON.parse(doc) : doc)
  } catch(err) {
    throw Error(`\nReceived array of strings in the 'documents' argument.
Attempted to parse them into objects but the process failed with the following error:\n${err}`)
  }

  return await docs.insertMany(items)
}

Submitted by adam186 96 days ago

Edited 27 days ago

No comments yet

Login to be able to comment