我正在使用mongoose开发一个带有node / express / mongodb的网络应用。我在项目中创建了一个名为data
的文件夹,在里面创建了另一个名为db
当我启动mongo时,我使用--dbpath
参数并将其指向我创建的项目data
文件夹。它连接好和一切。我一直在给数据库写一些数据,应用程序正确加载它,但是当我打开mongo shell时我找不到数据。
首先,当我打开shell时,我得到的唯一数据库是test
。如果我没有指定数据库名称,是否会自动创建?如何指定数据库名称?我在app.js
文件中有以下内容:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/abduldb');
我的猜测是,应该创建一个名为abduldb
的数据库吗?我没有在mongo shell中看到这一点。
此外,当使用test
数据库时,我运行show collections
并且它没有显示任何结果......我的数据到底在哪里?我现在只有1个型号,它看起来像这样:
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);
});
});
答案 0 :(得分:1)
当您在mongo shell中时,请尝试以下命令:"使用abduldb"。
您没有看到收藏品的原因是您自动连接到测试数据库。如果要更改它,请在启动mongo shell时运行此命令:
mongo abduldb
或者,您可以通过添加/更改此行来更改.mongorc.js文件中的默认数据库:
db = db.getSiblingDB("abduldb")
.mongorc.js文件位于/etc/mongorc.js,但如果它存在于您的主目录中(即/home/abduldb/.mongorc.js),则会被覆盖。