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

时间:2015-11-24 19:29:09

标签: java mongodb

为了在MongoDB 3.2中创建数据库实例,你必须编写类似的东西:

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

根据官方MongoDB Java API 3.2,这应该返回一个数据库实例,我的问题是:

  1. 我是否理解正确,如果具有指定名称的数据库不存在,那么MongoDB会为我创建它吗?
  2. 如果问题#1的假设是正确的,如果我尝试两次请求相同的数据库会发生什么?它会仅返回已存在的实例,还是会删除已存在的实例并创建一个新实例?
  3. P.S。请问,请给我一个好的更新的 MongoDB for Java手册/教程,我用Google搜索了几个,但它们没有那么更新。

1 个答案:

答案 0 :(得分:5)

3.1.1驱动程序中:

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

  1. 将为您创建新数据库(如果不存在)
  2. 如果存在,它将为您获取数据库
  3. 但请记住,你必须调用任何实际执行某些操作的操作 - 比如创建。如果您只是致电getDatabase,则无法创建它。