当前位置: 首页 > 知识库问答 >
问题:

在Spring Boot项目中在多个数据库中执行搜索操作

缑兴贤
2023-03-14

我的问题-我有mongodb安装在ubuntu服务器上,它有多个数据库,我想连接到mongodb安装在服务器上,获得所有的数据库(数据库的名称,每个数据库的集合),并在所有数据库上执行搜索操作。注意-我不知道数据库的名称

共有1个答案

薄欣怿
2023-03-14

它不会开箱即用的。如果包含spring-boot mongodb starter项目,它将查找属性'spring.data.mongodb.uri'以连接到单个数据库,如果找不到它,它将尝试连接到'localhost:27017'。然后,这个单一数据库将自动用于所有Spring数据存储库。

您可以为不同的数据库添加额外的MongoClient bean,但是将不同的Spring数据存储库连接到这些不同的bean需要做一些工作。

如果您想使用一组动态数据库,即当您不知道哪些数据库或有多少数据库时,您无论如何都不能使用固定的MongoClients作为spring bean。您需要某种工厂来根据数据库的数量创建多个MongoClient bean,以及连接到每个MongoClient bean的多个SearchRepository bean。

Map<String, MongoClient> clientsPerDatabase = new HashMap<>();

// Setup
MongoClient mongoClient = new MongoClient(/* default database */);
MongoCursor<String> dbsCursor = mongoClient.listDatabaseNames().iterator();
while(dbsCursor.hasNext()) {
  String databaseName = dbsCursor.next();
  if (!"admin".equals(databaseName)) {
    clientsPerDatabase.put(databaseName, new MongoClient(...+databaseName);
  }
}

// Query
for(MongoClient client: clientsPerDatabase.values()){
    ...   
}
 类似资料:
  • 因此,我最近开始学习Android编程,并一直在学习本教程,学习如何在SQLite数据库中插入、更新、删除和查看数据。现在,我还想在这个SQLite数据库中添加一个搜索功能,在这个数据库中,我可以搜索一个名称(我使用的列是name、contact和DOB),如果搜索到的名称与数据库中现有的名称匹配,则在应用程序中显示数据库中的一行/条目。我想这可以以类似于查看/更新数据库的方式来完成,所以我试着用

  • 问题内容: 因此,我有一个名为“ users。”的表的数据库。在该表中有一列名为“ IP”的列,我想查找具有相同IP的用户并将其禁止。 问题答案: 您应该利用查询分组。我写的一个老博客是《理解群居法》 但基本上这应该工作: 这将返回计数> 1的所有IP地址

  • 问题内容: 这是我班的模型: 这就是我从默认领域中搜索的方式: 现在, 问题 是:考虑到我的领域中有10-100个对象,搜索的速度有多快? 该用例用于图像识别应用程序。当应用识别出图像时,它将返回,并且基于I,我需要在屏幕上提供与ASAP 相关联的信息的叠加层。 现在,由于我有大约10-100个对象,因此线性搜索或通用二进制搜索会比我上面使用的搜索更快吗?还是可以调整以获得更快的结果?(以防它现在

  • 问题内容: 我目前正在尝试完成一个项目,其中的规范是使用搜索表单来搜索包装数据库。该数据库具有许多变量,包括大小,名称,类型和肉类。我需要创建一个搜索表单,用户可以在其中使用多种不同的搜索进行搜索(例如搜索50厘米长的盖子托盘)。 我花了整整一天的时间来尝试创建一些PHP代码,这些代码可以在我创建的测试数据库中搜索信息。我遇到了许多错误,从mysql_fetch_array错误,布尔错误到现在,我

  • 问题内容: 考虑有一个名为的表: 该表在PeopleDb数据库中 现在,我想找到“ Mike”关键字。情况 : 我不知道要搜索哪个数据库,表。 我需要一个查询,它在所有数据库和表中进行搜索, 并向我显示以下内容: | Id | DatabaseName | TableName | ColumnName | Pk | SearchValue | 1 | ‘PeopleDb’ | ‘People’ |

  • 我有一个查询,可以查找与某个数据库的列名匹配的所有表和视图。我正在使用SQL SERVER 2008 我想扩展查询的功能,以便在所有数据库中搜索,甚至查找具有我搜索的列名的存储过程。