Получить вставленный документ _id с помощью функции обратного вызова - PullRequest
0 голосов
/ 22 июня 2019

Я пытаюсь получить вставленный документ _id из MongoDB, используя callback функцию в nodejs (expressJS), но я получаю эту ошибку:

AssignmentDB.save не является функцией

Вот мой код.Может кто-нибудь помочь мне, как получить _id с функцией обратного вызова для MongoDB

router.route("/assignment/add").post((req, res) => {
  let assignmentDb = new AssignmentDB(req.body);

    AssignmentDB
    .save(assignmentDb, function(err, records){
      if(err) throw err;
      res.status(200).send(records[0]._id); //should send the inserted documents _id
    });

});

Это моя AssignmentDB модель выглядит так:

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

let AssignmentDB = new Schema({
    assignmentName: String,
    assignmentDescription: String,
    courseName: String,
    assignmentDueDate: Date,
    isNewAssignment: Boolean    
});

module.exports = mongoose.model('AssignmentDB', AssignmentDB, 'AssignmentDB');

1 Ответ

1 голос
/ 23 июня 2019

измените код роутера следующим образом

router.route("/assignment/add").post((req, res) => {
  let assignmentDb = new AssignmentDB(req.body);
    assignmentDb.save(function(err, record){
      if(err) throw err;
      res.status(200).send(record._id); //should send the inserted documents _id
    });

});

Метод Save возвращает сохраненную запись как объект, а не как массив объектов. Также вызовите метод save для экземпляра Model.

Ниже приведен пример для сохранения записи в MongoDB

var mongoose = require('mongoose');

// make a connection
mongoose.connect('mongodb://localhost:27017/tutorialkart');

// get reference to database
var db = mongoose.connection;

db.on('error', console.error.bind(console, 'connection error:'));

db.once('open', function() {
    console.log("Connection Successful!");

    // define Schema
    var BookSchema = mongoose.Schema({
      name: String,
      price: Number,
      quantity: Number
    });

    // compile schema to model
    var Book = mongoose.model('Book', BookSchema, 'bookstore');

    // a document instance
    var book = new Book({ name: 'Introduction to Mongoose', price: 10, quantity: 25 });

    // save model to database
    book.save(function (err, book) {
      if (err) return console.error(err);
      console.log(book + " saved to bookstore.");
    });

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