我正在尝试使用_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');
答案 0 :(得分:1)
像这样更改路由器代码
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方法将保存的记录作为对象而不是对象数组返回。另外,在Model实例上调用save方法。
下面是在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.");
});
});