вставить несколько записей, полученных из JSON в коллекцию, используя mongoose - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть большой массив JSON, внутри которого много объектов. Я хочу вставить это взять этот JSON и создать внутри моей БД для каждого объекта в массиве. Я новичок в MongoDB и Мангусте, поэтому я не уверен в подходе. в каком-то месте, где я читал, мне нужно использовать insert, в некоторых, которые я читал, мне нужно использовать insertMany, а в некоторых я видел create. на данный момент ничего не работает. Я пытаюсь сделать это так (Получить данные является частной функцией, которая извлекает JSON из удаленного API):

const mongoose = require("mongoose");
require("../../models/NFTContract");
const Contract = 
mongoose.model("contracts");

let data= getData();
module.exports = app => {
app.get("/test", (req, res, next) => {
    Contract.create(contracts, (err, docs) => {
      if (err) {
        console.log("err");
      } else {
        console.log("All should be inserted");
  }
});

});

Спасибо

1 Ответ

0 голосов
/ 11 ноября 2018

Прочитайте эти документы , чтобы узнать, как работает insertMany. Вот пример в документации:

var arr = [{ name: 'Star Wars' }, { name: 'The Empire Strikes Back' }];
Movies.insertMany(arr, function(error, docs) {});

Если у вас есть JSON, вы хотите сначала проанализировать его. Допустим, у вас есть этот JSON ( источник ):

{"menu": {
    "header": "SVG Viewer",
    "items": [
        {"id": "Open"},
        {"id": "OpenNew", "label": "Open New"},
        null,
        {"id": "ZoomIn", "label": "Zoom In"},
        {"id": "ZoomOut", "label": "Zoom Out"},
        {"id": "OriginalView", "label": "Original View"},
        null
    ]
}}

Если вы хотите вставить элементы, вы должны сделать:

Items.insertMany(JSON.parse(myJson).menu.items, (error, docs) =>
  error ? console.error(error) : console.log(docs))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...