用mongoDB和node.js打印集合的名称



我使用的是mongoclient,我确信我已经连接到数据库

const client = new MongoClient(uri);
const datatbaseslist = client.db().admin().listDatabases();
datatbaseslist.databases.forEach(db => {
console.log($db.name)
});

我在mongodb的视频中看到了代码,它不起作用。由于

我已经尝试寻找其他版本的行

const datatbaseslist = client.db().admin().listDatabases();
datatbaseslist.databases.forEach(db => {
console.log($db.name)
});

因为我很确定问题就在那里。

我认为你的问题标题是说一件事(集合)和你的代码混淆这任何另一个(数据库)。

  • mongodb服务器可以有多个数据库
  • 一个数据库可以有多个集合
  • 使用客户端连接服务器。
  • 通常如果你想了解数据库,你会使用admin()。或者要连接到特定的数据库(尽管您可以通过URI连接),您可以从客户端使用db(dbName)
  • 一旦你有了一个db对象,你就可以从那里获得集合。

下面的代码展示了如何获取数据库和集合。

const { MongoClient } = require('mongodb')
async function main () {
// Set config
const uri = 'mongodb://localhost:27017'
const client = new MongoClient(uri)
try {
// Connect to the MongoDB cluster
await client.connect()
// Get databases
const databasesList = await client.db().admin().listDatabases()
for (const dbName of databasesList.databases.map(db => db.name)) {
console.log('DB:         ', dbName)
// Get collections for each database
const collections = await client.db(dbName).listCollections().toArray()
console.log('Collections:', collections.map(col => col.name).join(', '))
console.log('---------------------------------------------')
}
} catch (e) {
// Handle any erros
console.error(e)
} finally {
// Always close the connection to the database when finished
await client.close()
}
}
main().catch(console.error)

最新更新