MongoDB / Mongoose / Nodejs Pu sh "String" в массив строк - PullRequest
0 голосов
/ 28 марта 2020

У меня изначально был JSON файл, который выглядел следующим образом ...

["blabla", "yadayada", "stack", "overflow", ......]

По запросу POST я помещал одну строку «STRING» в массив строк выше.

Однако при развертывании в Heroku я узнал, что fs write не работает, поэтому я решил использовать MongoDB Atlas .

Используя MongoDB Atlas и Mon goose, я написал следующий код, но результат не тот, который я хочу ...

В настоящее время объект помещается в массив:

{ firstPlace: [ 'blabla' ], _id: 5e7ec0756e5e8d3b7646f602, __v: 0 }

Я просто хочу добавить sh "блабла" в уже существующий массив. Всегда ли MongoDb создает _id / _v?

Рекомендация. js файл (Модель)

const mongoose = require ('mongoose')

const recommendationSchema = mongoose.Schema({
    firstPlace: [String]
})

module.exports = mongoose.model('Recommendation', recommendationSchema)

Рекомендация. js файл (маршрут)

const express = require("express");
const fs = require ('fs')
const router = express.Router();
const Recommendation = require ('../models/recommendation')
const mongoose = require('mongoose')

router.get("/", (_, res) => {
    Recommendation.find(function(err, Recommendation){
        res.json(Recommendation)
    })
  });

router.post("/", (req, res) => {
    const recommendation = new Recommendation();
    recommendation.firstPlace.push(req.body.firstPlace)

    recommendation.save().then(result => {
        console.log(result)
        res.status(201).json({
            message:"POST request to /recommendation",
            createdRec: result
        })
    })
    .catch(err => {
        console.log(err);
        res.status(500).json({
            error: err
        })
    });
});

module.exports = router;

Спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...