使用mongoose时,在mongodb中找不到Db

下面的代码,完全正确地给出输出 在这里输入图像描述

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!!!!'); }); 

但是当我尝试在连接string(即)trial1中search数据库时,我无法find它,屏幕截图如下。 在这里输入图像描述

另外,当我在mongo shell中说“use trial1”时,我会根据以下屏幕截图获取输出。 在这里输入图像描述 这意味着数据库存在或已被创build。 为什么我无法看到数据库?

所以是的,答案是布雷克的评论,也是皮奥的答案的一部分。

你看不到数据库,因为你的Mongoose代码实际上并没有创build任何用户。 当你实例化模型用户时,它将在内存中创build它,但不在数据库中。 要将用户插入到数据库中,您必须像这样调用保存在您的实例上的方法:

 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中你将不会看到数据库,因为它是空的,所以不存在。

你用什么用户来访问数据库,也许用户没有对数据库的身份validation。 或者,你的db url应该是这样的:mongodb:// username:password @ localhost:27017 / trial1。 谢谢。

要用show dbs显示数据库,您需要至less将一个文档插入到数据库的集合中。 在这里看到更多细节 。