找不到mongodb集合/数据

我正在用node / express / mongodb使用mongoose在web应用上工作。 我在我的项目中创build了一个名为data的文件夹,在里面我创build了另一个名为db文件

  • 数据
    • D b

当我启动mongo时,我使用--dbpath参数并将其指向我创build的项目data文件夹。 它连接好,一切。 我一直在向数据库写入一些数据,并且应用程序正确加载它,但是当我打开mongo shell时找不到数据。

首先是,当我打开壳我唯一的数据库是test 。 如果我没有指定数据库名称,这是自动创build的? 我如何指定数据库名称? 我有我的app.js文件中的以下内容:

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

我的猜测是应该创build一个名为abduldb的数据库是否正确? 我在mongo shell中看不到这个。

此外,当使用test数据库,我运行show collections ,并显示没有结果…我的数据写在哪里? 我现在只有一个型号,看起来像这样:

 var mongoose = require('mongoose'); var ItemSchema = new mongoose.Schema({ title: String, body: String }); mongoose.model('item', ItemSchema); 

我正在添加新的项目在我的路线文件使用:

 router.post('/items', function (req, res, next) { var item = new Item(req.body); item.save(function(err, item){ if(err){ return next(err); } res.json(item); }); }); 

当你在mongo shell中时,试试这个命令:“use abduldb”。

你没有看到你的collections的原因是因为你自动连接到testing数据库。 如果你想改变这个,当你启动mongo shell的时候运行这个:

 mongo abduldb 

或者,您可以通过添加/更改以下行来更改.mongorc.js文件中的默认数据库:

 db = db.getSiblingDB("abduldb") 

.mongorc.js文件可以在/etc/mongorc.jsfind,但是如果它存在于你的主目录中(例如/home/abduldb/.mongorc.js),它将被覆盖。