我正在尝试使用Mongoose将记录从已定义的架构保存到MongoDB。然而,它只是创建了如下所示的记录。
{ "_id" : ObjectId("56d677825fd64c7018a74ffc"), "__v" : 0 }
我正在使用:
这是我的index.js
var mongoose = require('mongoose');
var schema = require('./schema');
mongoose.connect('mongodb://localhost:27017/users');
// Parameters are: model name, schema, collection name
var User = mongoose.model('User', schema, 'testing');
var user = new User({
name: 'John Smith',
email: 'john@smith.io'
});
user.save(function(error) {
if (error) {
console.log(error);
process.exit(1);
}
User.find({ email: 'john@smith.io' }, function(error, docs) {
if (error) {
console.log(error);
process.exit(1);
}
console.log(require('util').inspect(docs));
process.exit(0);
});
});
我的schema.js
var mongoose = require('mongoose');
module.exports = new mongoose.Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true,
match: /.+@.+\..+/,
lowercase: true
},
loggedInCount: {
type: Number,
default: 0
}
});
我确实看到还有其他与此有关的问题,但我无法让他们中的任何一个工作。我正在编写一个教程,并尝试从字面上运行与教程完全相同的代码,但无济于事。
更新1 3/3 - 按照评论中的建议,我卸载了v4并重新安装了3.8但我仍然遇到了同样的问题。只是一个空白'记录其中包含对象ID。我也尝试将mongod --dbpath明确指向我的数据目录,但我不相信这是问题,因为正在创建一条记录,它只是不会持久保存我所推送的数据。
更新2 3/3 - 使用
mongoose.set('debug',true)
我收到以下回复
Mongoose: testing.insert({ __v: 0, _id:ObjectId("56d915355a07ee0f1c000001") }) {}
Mongoose: testing.find({ email: 'john@smith.io' }) { fields: undefined }
但没有找到记录。我被退回[]