【问题标题】:Can't insert multiple objects from a JSON file into my MongoDB, it only inserts the first one无法将 JSON 文件中的多个对象插入我的 MongoDB,它只插入第一个
【发布时间】:2020-07-13 00:33:26
【问题描述】:

我编写了一个脚本,将 JSON 文件中的所有对象插入到我的数据库集合中,并编写了一个脚本,用于删除同一集合中的所有内容。 delete 可以正常工作,但是 insert 只插入 JSON 文件的第一个对象。我需要FS,我已经将文件解析为JSON,地狱,它正确地插入了第一个。还检查了我的 JSON 文件,没有问题,所有大括号和逗号都在它们应该在的位置。出于某种原因,该错误未定义?非常感谢任何帮助。

//IMPORT DATA INTO DATABASE
const importData = async () => {
  try {
    await Tour.create(tours);
    console.log('Data successfully loaded!');
  } catch {
    console.log(err);
  }
  process.exit();
};

//DELETE ALL DATA FROM COLLECTION
const deleteData = async () => {
  try {
    await Tour.deleteMany();
    console.log('Data successfully deleted!');
  } catch {
    console.log('Error!');
  }
  process.exit(); 
};

【问题讨论】:

  • 示例代码没有显示从文件中读取?
  • @Joe 我刚刚上传了一个 sn-p,我认为上传整个文件在 Stack Overflow 上是不受欢迎的。这是所有关心pastebin.com/Sf9A5xs5的人的完整文件
  • 请尝试打印tours 变量以检查它是否包含对象数组。
  • 错误是由于某种原因未定义。指定 catch 块的标识符,例如catch(e),记录并分享日志的输出`。
  • @codetiger 是的,控制台日志显示了我拥有的所有游览。

标签: node.js json mongodb mongoose


【解决方案1】:

我真的让它工作了。将导入脚本重写为 if else,错误在我的数据库中显示“重复的索引/键”。所以我只是在导入之前运行了 db.collection.dropIndexes(),现在效果很好!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-03
    • 2020-04-17
    • 2021-09-07
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多