Tengo un script node.js que se usa para conectar MongoDB y cargar datos. Inicialmente puse las consultas múltiples dentro del script y pude cargar ejecutando el script.
Ahora necesito cargar dinámicamente toda la conexión y la consulta desde un archivo externo. Lo intenté de la siguiente manera, pero no podemos leer la conexión db y las consultas juntas de esta manera, ya que estamos pasando como funciones. ¿Alguna solución para leer toda la consulta y la conexión desde un archivo externo?
código index.js
var MongoClient = require('mongodb').MongoClient; const file = require('./assets/queryConfig'); const url = 'mongourl'; MongoClient.connect(url, {useNewUrlParser: true}, {slave_ok: true}, function (err,db){ if(err) throw err; var dbo = db.db('mongoDBName'); file.queryList.forEach(query => { query; }); db.close(); });queryConfig.js: mantenga las consultas como una matriz de cadenas.
var queryList = [ `db.collection('collectionName').insertMany([{'id':1,'data':'test'}, {'id':2,'data':'test2'}]);`, `db.collection('collectionName2').insertMany([{'id':3,'data':'test3'}, {'id':4,'data':'test4'}]);` ] exports.queryList = queryList;Por favor proporcione si alguien tiene alguna solución para esto.
Creo que deberías usar mongo shell para ejecutar el script
https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/ https://nodejs.dev/learn/write-files-with-nodejs
En el script de nodejs
const { exec } = require("child_process"); file.queryList.forEach(query => { // write query to file "script.js" .... exec("mongo localhost:27017/test script.js", (error, stdout, stderr) => { if (error) { console.log(`error: ${error.message}`); return; } if (stderr) { console.log(`stderr: ${stderr}`); return; } console.log(`stdout: ${stdout}`); }); });