【问题标题】:mongo database doesn't show up in command linemongo 数据库未显示在命令行中
【发布时间】:2018-09-29 06:59:43
【问题描述】:

我不明白为什么我在命令行中运行“显示数据库”时没有显示我的 mongo db。我看到了我过去创建的其他 mongo db,但不是当前的。这是我的代码:(使用猫鼬 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;

我正在尝试基本的 model.save 操作:

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

当我在 mongo 中运行“显示数据库”时,为什么我的“fuelTracker”数据库没有出现在命令行中的任何线索?

谢谢!!

【问题讨论】:

  • 您的数据库此时是否有任何集合?

标签: javascript database mongodb mongoose


【解决方案1】:

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

我通过创建和运行脚本来测试您的代码,以使用示例 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"
  }
]

然后运行你的种子文件,你的数据库应该会出现。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-21
      • 2017-12-22
      • 2021-08-27
      • 2013-01-20
      • 2021-08-21
      • 1970-01-01
      • 2014-12-27
      • 1970-01-01
      相关资源
      最近更新 更多