在MongoDB

时间:2016-03-02 13:38:45

标签: node.js mongodb mongoose

我正在尝试使用Mongoose将记录从已定义的架构保存到MongoDB。然而,它只是创建了如下所示的记录。

{ "_id" : ObjectId("56d677825fd64c7018a74ffc"), "__v" : 0 }

我正在使用:

  • Mongoose版本4.0.3
  • npm version 3.3.12
  • node version 5.1.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 }

但没有找到记录。我被退回[]

0 个答案:

没有答案