mongoDB listCollections() returns 如果 nameOnly 设置为 true,则为空
mongoDB listCollections() returns empty if nameOnly is set to true
我正在使用 nestJS 尝试获取数据库下存在的集合列表。但是,如果我尝试使用选项 { nameOnly: true }
,我会得到一个空数组。
下面是我获取集合名称的代码:
@Get(':client_name/listCollections')
async collections(@Param('client_name') client_name) {
let arrayOfCollections;
const db = await this.databaseService.connectToDatabase(client_name);
try {
arrayOfCollections = await db
.listCollections({ nameOnly: true })
.toArray();
} catch (error) {
throw error;
}
if (arrayOfCollections) {
return arrayOfCollections;
}
}
如果我删除 { nameOnly: true }
那么我会得到完整的列表,但是因为这会锁定数据库和 returns 我不需要的额外信息 我想避免使用它,如果可能。
您只是提供此选项作为方法的查询,您需要做的就是用空查询重写它:
arrayOfCollections = await db
.listCollections({}, { nameOnly: true })
.toArray();
我正在使用 nestJS 尝试获取数据库下存在的集合列表。但是,如果我尝试使用选项 { nameOnly: true }
,我会得到一个空数组。
下面是我获取集合名称的代码:
@Get(':client_name/listCollections')
async collections(@Param('client_name') client_name) {
let arrayOfCollections;
const db = await this.databaseService.connectToDatabase(client_name);
try {
arrayOfCollections = await db
.listCollections({ nameOnly: true })
.toArray();
} catch (error) {
throw error;
}
if (arrayOfCollections) {
return arrayOfCollections;
}
}
如果我删除 { nameOnly: true }
那么我会得到完整的列表,但是因为这会锁定数据库和 returns 我不需要的额外信息 我想避免使用它,如果可能。
您只是提供此选项作为方法的查询,您需要做的就是用空查询重写它:
arrayOfCollections = await db
.listCollections({}, { nameOnly: true })
.toArray();