首页 > 解决方案 > MongoDB 的 JSON 输入

问题描述

我有两种类型的 JSON 文件要插入到我的 mongodb 数据库中。我正在使用 mongoose 和 nodejs 来尝试。我该怎么做?我试图在网上寻找可能的解决方案,但我一无所获。这两个 JSON 文件都有大约数百个输入。所以,一一插入并不是一个好的解决方案。我将在此处给出模式的数据示例。

类型 1:

[
 { 
   "name" : "Jonathan",
   "lastName": "Smith"
 },
 { 
   "name" : "Simon",
   "lastName": "Williams"
 }
]

类型 2:

[
 { 
   "id": 1,
   "type": "fruit",
   "inStock": [
     {
       "count": 15,
       "items": [
          {
            "name": "apple",
            "amount": 12
          },
          {
            "name": "orange",
            "amount": 3
          }
       ]
     }  
},
{ 
   "id": 2,
   "type": "vegetable",
   "inStock": [
     {
       "count": 18,
       "items": [
          {
            "name": "carrot",
            "amount": 10
          },
          {
            "name": "lettuce",
            "amount": 8
          }
       ]
     }  
 }
]

我的架构会是什么样的?如何解析我的 JSON 文件?示例代码将不胜感激。

好的,这是我为此编写的代码。

const fs = require("fs");
const mongoose = require('mongoose');
var assert = require('assert')
mongoose.connect('mongodb://localhost:27017/person'), { useNewUrlParser: true};


var personSchema = new mongoose.Schema({
    name: String,
    lastname: String
});

const Person = mongoose.model("Person", personSchema);

var data = fs.readFileSync('people.json');
let mydata = JSON.parse(data);

console.log(mydata);

Person.collection.insertMany(mydata, function(err) {
    if(err){
        console.log("There was an error");
        console.log(err);
    }else{
        console.log("Success");
    }
    
 })

控制台给了我成功。我有一个数据库。但是,我没有收藏。我在这里做错了什么?

我认为我的问题不在于我的代码不起作用。出于某种原因,我的代码即使是简单的教程代码也不会将任何集合保存到数据库中。我不知道为什么。

标签: node.jsjsonmongodbmongoose

解决方案


推荐阅读