var mongoose=require('mongoose');
var dbUrl='mongodb://localhost:27017/trial1';
mongoose.connect(dbUrl);
//Creating schema
var userSchema=new mongoose.Schema({
name:String,
email:String,
createdOn:Date
});
mongoose.model('User',userSchema);
var User=mongoose.model('User');
var userOne=new User({name:'Mike'});
console.log(userOne.name);
mongoose.connection.on('connected',function(){
console.log('mongoose connected to '+dbUrl);
});
mongoose.connection.close(function(){
console.log('connection closed!!!!');
});
但是当我尝试在连接字符串(即)trial1中搜索db时,我无法找到它,屏幕截图如下。
当我说"使用trial1"在mongo shell中我按照以下屏幕截图获取输出。这表示数据库存在或已创建。 为什么我无法看到db ??
答案 0 :(得分:3)
所以答案是答案在布雷克斯的评论中,也是Pio的答案的一部分。
您没有看到数据库,因为您的Mongoose代码实际上并未在其中创建任何用户。实例化模型用户时,它将在内存中创建,但不在数据库中创建。要将用户插入数据库,必须在实例上调用方法save,如下所示:
var userOne=new User({name:'Mike'});
userOne.save(function(err, user){
if (!err) {
console.log('Now my user is saved in the database');
}
})
因此,如果您不保存您的用户,那么在mongo shell中您将看不到数据库,因为它是空的,因此不存在。
答案 1 :(得分:1)
您使用什么用户来访问数据库,也许用户在数据库上没有身份验证。 或者,您的数据库URL应为:mongodb://用户名:密码@ localhost:27017 / trial1。 感谢。
答案 2 :(得分:-2)
要显示包含show dbs
的数据库,您需要将至少一个文档插入其中一个db的集合中。查看更多details here。