小编典典

mongoDB集合创建

javascript

我在 mongodb atlas 的数据库中添加集合时遇到问题。我之前设法导入了这个集合,但我不小心删除了它,现在我无法再次上传它。我的终端没有错误。因为我不知道我的代码有什么问题..(我的代码和终端的图像附在下面)

有谁可能知道为什么会发生这种情况?

编辑

我试图打开一个新数据库,我的所有集合都被导入到它,再一次,只有产品集合没有

//////////////////////////////

/* require('dotenv').config({ path: '/.env' }) */
const path = require('path')
require('dotenv').config({ path: path.resolve(__dirname, '..', '.env') })
console.dir(process.env.MONGO_URI)
const mongoose = require('mongoose')

const connectDB = async () => {
  try {
    mongoose.connect(process.env.MONGO_URI, {
      useCreateIndex: true,
      useNewUrlParser: true,
      useUnifiedTopology: true,
    })
    console.log('MongoDB connection SUCCESS')
  } catch (error) {
    console.error('MongoDB connection FAIL')
    process.exit(1)
  }
}
console.dir(process.env.MONGO_URI)

module.exports = connectDB

///////////////////////////////////////// //////////////

require('dotenv').config()

const productsData = require('./data/products')
const connectDB = require('./config/db')
const Product = require('./models/product')

connectDB()

const importData = async () => {
  try {
    /*  Product.deleteMany({}) */
    Product.insertMany(productsData)
    console.dir('Data Imported Successfuly')

    process.exit()
  } catch (error) {
    console.log(error)
    console.error('Error Ocured In Imported Data Process', error)
    process.exit(1)
  }
}

importData()

我的模型架构

 const mongoose = require('mongoose')
const products = require('../data/products')
const productSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true,
  },
  description: {
    type: String,
    required: true,
  },
  price: {
    type: Number,
    required: true,
  },
  countInStock: {
    type: Number,
    required: true,
  },
  imageUrl: {
    type: String,
    required: true,
  },
})

module.exports = mongoose.model('Products', productSchema)

[我的代码和终端图像]LCWMC.png


阅读 128

收藏
2022-07-26

共1个答案

小编典典

Product.insertMany(productsData)返回一个承诺,但在退出流程之前,您不会等待该承诺完成。在它之前添加一个await,你应该没问题。

2022-07-26