【问题标题】:Mongoose can't find recent saved猫鼬找不到最近保存的
【发布时间】:2020-02-04 05:48:17
【问题描述】:

我正在尝试保存连接到我的脚本的客户端的 IP 地址。

但是,虽然我没有收到任何错误,但当我检查集合时它是空的。

index.js(主应用)

const Listeners = require('mongoose').model('listeners');

const userData = {"ipaddress":ip}

const Listener = new Listeners(userData);

Listener.save(function (err, userData) {
    if (err) return console.error(err);
});

猫鼬 index.js

const mongoose = require('mongoose');

module.exports.connect = (uri) => {
  mongoose.connect(uri, {useCreateIndex: true, useFindAndModify: false , useNewUrlParser: true, useUnifiedTopology: true });
  // plug in the promise library:
  mongoose.Promise = global.Promise;

  mongoose.connection.on('open',function() {
    console.log('Mongoose connected. what did you think');
    });

  mongoose.connection.on('error', (err) => {
    console.error(`Mongoose connection error: ${err}`);
    process.exit(1);
  });

  // load models
  require('./listener');

};

我的监听文件

const mongoose = require('mongoose');
// define the User model schema
const ListenerSchema = new mongoose.Schema({
    ipaddress: {
      type: String,
     // index: { unique: true }
    },
    station: String,
    start_time:{
     type: Date
    },
    end_time:{
        type: Date
    }
  }, { collection: 'listeners'});


  /**
 * The pre-save hook method.
 */
ListenerSchema.pre('save', function saveHook(next) {
    const Listener = this;
  console.log(this)
});


module.exports = mongoose.model('listeners', ListenerSchema);

当我运行它时,我得到{ _id: 5e2bf98549ae2d5d6da52475, ipaddress: '127.0.0.1' }

但是,当我打开 mongodb 集合时,我什么也看不到。

似乎没有错误,但一定有?

【问题讨论】:

    标签: node.js mongodb mongoose mongodb-query


    【解决方案1】:

    ? 无法将数据保存到 collection 的唯一原因是因为您的 listener 文件中有这段代码。

    ?‍? 尝试评论下面的这段代码?:

      /**
     * The pre-save hook method.
     */
    ListenerSchema.pre('save', function saveHook(next) {
        const Listener = this;
      console.log(this)
    });
    
    

    ?‍? 或者,第二个选项是在其中添加next 函数。因此,您的代码将如下所示 ?:

      /**
     * The pre-save hook method.
     */
    ListenerSchema.pre('save', function saveHook(next) {
        const Listener = this;
        console.log(this);
        // add next function below
        next();
    });
    
    

    现在,您可以再试一次,我敢肯定,您可以在 mongodb 中看到该集合。

    希望对你有帮助?。

    【讨论】:

      猜你喜欢
      • 2014-02-03
      • 2016-11-04
      • 2016-05-05
      • 1970-01-01
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      • 2017-10-05
      • 2017-12-05
      相关资源
      最近更新 更多