mongo数据库没有显示在命令行

时间:2018-04-18 22:14:22

标签: javascript database mongodb mongoose

我不明白为什么我的mongo db在运行时没有显示出来"显示数据库"在命令行中。我看到我过去创建的其他mongo db,但不是现在的。这是我的代码:(使用mongoose ORM):

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/fuelTracker');

var Schema = mongoose.Schema;

var fuelSchema = new Schema({
  time : { type : Date, default: Date.now },
  miles : Number,
  gallons: Number
});

var FuelStop = mongoose.model('FuelStop', fuelSchema);

module.exports = FuelStop;

我试图进行基本的模型操作:

  app.post('/', function (req, res ) {
  results = req.body;
  var fuelStop = new FuelStop (results)
  fuelStop.save(function() {
    console.log('record saved to monogoDB');
  });
})

任何有关我的' fuelTracker'当我运行“显示数据库”时,数据库不会出现在命令行中。在mongo内?

谢谢!!

2 个答案:

答案 0 :(得分:0)

你试过show dbs吗? show databases打印所有可用数据库,请参阅此处的文档:https://docs.mongodb.com/manual/reference/mongo-shell/

答案 1 :(得分:0)

在将数据插入数据库中的集合之前,不会创建数据库。

我通过创建和运行脚本来测试您的代码,以使用示例JSON数据为fuelTracker数据库播种。然后我跑了show databases并且能够看到fuelTracker列出。

如果您想在新文件seed.js中尝试此操作:

const db = require('./fileName.js');
const fs = require('fs');

let fuelData = fs.readFileSync('./data.json', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});

let jsonFuel = JSON.parse(fuelData);

db.remove({}, () => {
  console.log('Successfully removed fuel data');
  db.collection.insert(jsonFuel, (err, docs) => {
    if (err) {
      console.log(`error inserting data: ${err}`);
    } else {
      console.log(`Fuel data was stored: ${docs}`);
    }
  });
});

然后在data.json

中创建示例数据
[
  {
    "time":"04/18/2018",
    "miles":"28",
    "gallons":"30"
  }
]

然后运行您的种子文件,希望您的数据库显示出来。