我想在添加新文档时增加id。但是当我使用下面的代码时,fieldnum和_id都没有自动递增。我找不到fieldnum。我知道这是一个蹩脚的问题,但有人可以帮我解决这个问题吗?
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
pureautoinc = require('mongoose-pureautoinc');
var connection = mongoose.createConnection("mongodb://localhost/myDatabase");
pureautoinc.init(connection);
var bookSchema = new Schema({
title: String,
genre: String,
publishDate: Date
});
bookSchema.plugin(pureautoinc.plugin,{model : 'Book',field :'fieldnum'});
var Book = connection.model('Book',bookSchema);
var book1 = new Book({title : "goutham", genre : "comedy", publishDate : new Date()});
book1.save();
var book2 = new Book({title : "goutham1", genre : "comedy", publishDate : new Date()});
book2.save();
console.log(book1,book2);
答案 0 :(得分:1)
它正在创建fieldnum
atrribute,它也会自动增加它。如果您通过mongodb
控制台检查已保存的对象,并调用db.books.find()
,则会看到该属性已创建。
您的代码中的问题是您没有将任何回调传递给save
来电,因此您在返回之前会调用console.log(book1, book2)
。你应该怎么做才能看到持久化的对象:
var logIfSaved = function (error, doc) {
if (error) throw Error(error);
console.log(doc);
};
var book1 = new Book({title : "goutham", genre : "comedy", publishDate : new Date()});
book1.save(logIfSaved);
var book2 = new Book({title : "goutham1", genre : "comedy", publishDate : new Date()});
book2.save(logIfSaved);
现在,将回调传递给save
来电,只有在保存对象后才能记录对象。