java - MongoClient.getDatabase() 是只返回一个数据库实例还是实际创建它?

标签 java mongodb

为了在 MongoDB 3.2 中创建数据库实例,您必须编写如下内容:

new MongoClient().getDatabase("dbName");

据官方MongoDB Java API 3.2这应该会返回一个数据库实例。

我的问题:

  1. 我是否理解正确,如果具有指定名称的数据库不存在,MongoDB 会为我创建它?

  2. 如果问题 #1 的假设是正确的,那么如果我尝试请求同一个数据库两次,会发生什么情况?它会只返回已经存在的实例还是会删除现有实例并创建一个新实例?

附言你能不能给我一个好的和更新 MongoDB for Java 手册/教程,我用谷歌搜索了其中的几个,但它们不是那么更新。

最佳答案

3.1.1 驱动程序中:

调用 getDatabase 实际上并没有创建新的数据库,因为操作是惰性的——它返回数据库表示。调用任何可修改的操作(例如 createCollection):

  1. 如果数据库不存在,将为您创建新的数据库
  2. 如果存在,它将为您获取数据库

但请记住,您必须调用任何实际执行某些操作的操作 - 例如创建。如果您只是调用 getDatabase,它不会创建它。

关于java - MongoClient.getDatabase() 是只返回一个数据库实例还是实际创建它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33902181/

相关文章:

java - 分析单个 Web session

java - 使用对象作为通用容器

node.js - Mongoose :不允许更新特定字段

MongoDB .NET 驱动程序和文本搜索

python - pymongo 在尝试连接到本地 Mongo 实例时返回 SSL 错误

Java - 静态变量的副本也是静态的吗?

Java和系统用户认证

Java:我应该在这里使用什么样的ThreadPool?

node.js - moment(new Date().toISOString() 始终返回相同的日期和时间

ios - 理解MongoDB最简单的方法iphone