Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

163
Views
Mongoose deleteMany() está eliminando un futuro create()

Aquí está mi guión completo:

 import path from 'path' import mongoose from 'mongoose' import dotenv from 'dotenv' import { SiteConfigModel } from '../src/feature/site-config/model' import { siteConfigData } from '../data/siteConfigData' import { UserModel } from '../src/auth/model/UserModel' import { userData } from '../data/userData' const configPath = path.join(__dirname, '..', '.env.local') dotenv.config({ path: configPath }) const MONGO_URI = process.env.MONGO_URI || 'MISSING' console.log(`Using mongo URI: ${MONGO_URI}`) const mongoConnect = async () => { console.log('Attempting mongo connection...') const { connection: { host }, } = await mongoose.connect(MONGO_URI) console.log(`MongoDB Connected: ${host}`) } const importSiteConfig = async () => { try { await SiteConfigModel.deleteMany() await SiteConfigModel.create(siteConfigData) console.log('Data imported!') process.exit(0) } catch (error) { console.error(error) process.exit(1) } } const importUsers = async () => { try { await UserModel.deleteMany() await UserModel.create(userData) } catch (error) { console.error(error) process.exit(1) } } mongoConnect() importSiteConfig() importUsers()

Cuando lo ejecuto con ts-node ./scripts/seeder.ts , la colección de usuarios está vacía. Sin embargo, si hago una pequeña modificación:

 const importUsers = async () => { try { // await UserModel.deleteMany() // DELETE THIS LINE await UserModel.create(userData) } catch (error) { console.error(error) process.exit(1) } }

Entonces hay dos registros en la base de datos.

No espero este resultado, porque deleteMany() viene antes que create(). ¿Cómo es que esto está ocurriendo?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

prueba esto:

 const importSiteConfig = async () => { try { await SiteConfigModel.deleteMany() await SiteConfigModel.create(siteConfigData) console.log('Data imported!') } catch (error) { console.error(error) // or throw error } } const importUsers = async () => { try { await UserModel.deleteMany() await UserModel.create(userData) } catch (error) { console.error(error) // or throw error } } (async()=> { try{ await mongoConnect() await importSiteConfig() await importUsers() process.exit(0) }catch(e){ process.exit(1) } })()

Actualizado:

Como pruebo en mi entorno:

Estructura del proyecto:

ingrese la descripción de la imagen aquí

En mi node.ts tengo lo siguiente:

 const mongoose = require("mongoose"); const { Schema } = mongoose; const SiteConfigSchema = new Schema({ config1: Boolean, config2: Boolean, }); const UserModelShema = new Schema({ name: String, }); const configModel = mongoose.model("config", SiteConfigSchema); const userModel = mongoose.model("user", UserModelShema); const mongoConnect = async () => { console.log("Attempting mongo connection..."); const { connection: { host }, } = await mongoose.connect(`mongodb://localhost:27017/testdb`); console.log(`MongoDB Connected: ${host}`); }; const importSiteConfig = async () => { try { await configModel.deleteMany(); await configModel.create({ config1: true, config2: false }); console.log("config Data imported!"); } catch (error) { console.error(error); // or throw error } }; const importUsers = async () => { try { await userModel.deleteMany(); await userModel.create([{ name: "user 1" }, { name: "user 2" }]); console.log("user Data imported!"); } catch (error) { console.error(error); // or throw error } }; (async () => { try { await mongoConnect(); await importSiteConfig(); await importUsers(); process.exit(0); } catch (e) { process.exit(1); } })();

paquete.json:

 { "name": "test", "version": "1.0.0", "main": "node.ts", "license": "MIT", "scripts": { "seeder": "npx ts-node node.ts" }, "dependencies": { "mongoose": "^6.3.0", "typescript": "^4.6.3" } }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!