InsertMany не работает в mongodb - PullRequest
0 голосов
/ 30 мая 2018

Я довольно новичок в Mongoose и MongoDB и пытаюсь сохранить кучу документов, вставленных с помощью метода insertMany, но это не сохраняет документы.

Вот мой код:

Модель:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;


var hostSchema = new Schema({
    hostname: String,
    timestamp: Number,

});

var hostModel = mongoose.model('host', hostSchema, 'host');

module.exports = hostModel;

ExpressJS Post route

var mongoose = require('mongoose');
var hostModel = require('../../models/Host');

router.post('/host', function (req, res, next) {
    var payload = req.body;

    (async function(){
        var host = new hostModel();

        const insertMany = await hostModel.insertMany(payload.data);

        console.log(JSON.stringify(insertMany,'','\t'));

        const saveMany = await hostModel.save();

        res.status(200).send('Ok');
    })();
});

Это console.log показывает мне записи, но когда я делаюhostModel.save() Я получаю hostModel.save is not a function.

Как сохранить вставленные документы?

Большое спасибо за помощь!

1 Ответ

0 голосов
/ 30 мая 2018

Нет необходимости создавать экземпляр new hostModel() здесь ... использовать напрямую hostModel, а также не нужно save(), потому что сама вставка многих создает коллекции ... и убедитесь, что payload.data имеет массив объектов

router.post('/host', function (req, res, next) {
  const array = [{hostname: 'hostname', timestamp: 'timestamp'},
                 {hostname: 'hostname', timestamp: 'timestamp'}]

    var payload = req.body;

    (async function(){

        const insertMany = await hostModel.insertMany(array);

        console.log(JSON.stringify(insertMany,'','\t'));

        res.status(200).send('Ok');
    })();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...