找不到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),它将被覆盖。