У меня есть данные json в переменной

 let records =    {
       "Name":"Stephen",
       "Age":10,
       "School":"PSB"
    },
    {
       "Name":"Rocky",
       "Age":09,
       "School":"BSR"
    },
    {
       "Name":"Emy",
       "Age":15,

Создал схему с мангустом с именем post.js

    const mongoose = require("mongoose")
    
    const postSchema = new mongoose.Schema({
        Name:String,
        Age:Number,
        School:String,
    })

const Post = mongoose.model("Post",postSchema)
module.export = Post

Теперь, как мне обновить базу данных

const mongoose = require("mongoose")

const Post = require("./database/models/Post")
mongoose.connect("mongodb://localhost/node-js-blog")

Post.create({
JSON.parse(records)
}) 

Но это вызвало ошибку.

Не могли бы вы помочь мне, как передать эти данные json в коллекции таблиц?

Я получаю сообщение об ошибке:

ObjectParameterError: Parameter "obj" to Document() must be an object,
0
wanderors 17 Сен 2020 в 14:35

1 ответ

Лучший ответ

Вы должны иметь возможность передавать массив в Model.create . Поэтому вместо того, чтобы оборачивать массив в объект, вы можете просто сделать:

await Post.create(JSON.parse(records)); 

Также обратите внимание, что JSON.parse необходимо, только если records, например, json-строка. Если это уже массив, вы можете передать его напрямую:

 let records =    [{
       "Name":"Stephen",
       "Age":10,
       "School":"PSB"
    },
    {
       "Name":"Rocky",
       "Age":09,
       "School":"BSR"
    }];

await Post.create(records);  
1
eol 17 Сен 2020 в 11:51