我在 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)
[我的代码和终端图像]
Product.insertMany(productsData)返回一个承诺,但在退出流程之前,您不会等待该承诺完成。在它之前添加一个await,你应该没问题。
Product.insertMany(productsData)
await