猫鼬 - 尽管建立了连接,但数据库未显示在 GUI 上



我正在从头开始编写一个基本的快速应用程序。我已经使用猫鼬建立了数据库连接。我现在要实现的只是简单地让数据库显示在 mongo GUI 上(我同时使用 mongo 指南针和 Robo 3T)。这是我server.js

import express from 'express'
import mongoose from 'mongoose'
require('dotenv').config()
const server = express()
server.get('/', (req, res) => {
res.send("Hello World");
});
const port = process.env.PORT || 5000;
mongoose.connect(process.env.DB_URL, { useNewUrlParser: true });
mongoose.connection.on('open', function(){
console.log("Mongoose default connection is open to ", process.env.DB_URL)
});

server.listen(port, () => {
console.log(`server running on port ${port}`)
});

DB_URL如下所示:DB_URL=mongodb://localhost:27017/my-test-db

正如预期的那样,我得到的输出说 -Mongoose default connection is open to mongodb://localhost:27017/root-factory-db.但是,当我连接到localhost:27017时,数据库永远不会显示在 GUI 上。我知道它没有任何数据。所以我进一步搜索,至少看看它是否在连接后列出了数据库。为此,我尝试调整connection.on方法,如下所示:

mongoose.connection.on('open', function(){
console.log("Mongoose default connection is open to ", process.env.DB_URL)
new Admin(mongoose.connection.db).listDatabases(function(err, result) {
console.log('listDatabases succeeded');
// database list stored in result.databases
var allDatabases = result.databases;
console.log('allDatabases: ', allDatabases)
});
});

执行此操作后,我可以从其他本地应用程序中查看所有其他数据库,但刚刚创建的my-test-db除外。它没有出现在 GUI/编程方式上,因为它是空的吗?上次我尝试使用GUI(Robo 3T和Mongo Compass)时,它们显示的数据库很好。有人可以在这里指出我正确的方向吗?

编辑:也尝试从mongo终端show dbs。数据库也没有显示在那里。

如果其他人遇到此问题,在进一步查找后,我发现为了使数据库在 GUI 中正确显示,我必须在数据库中创建一些数据。我通过其中一个控制器的 POST 请求做到了这一点。只需在数据库中创建一个文档,数据库(以及集合)在GUI中显示得很好。

最新更新