为了在 MongoDB 3.2 中创建数据库实例,您必须编写如下内容:
new MongoClient().getDatabase("dbName");
据官方MongoDB Java API 3.2这应该会返回一个数据库实例。
我的问题:
我是否理解正确,如果具有指定名称的数据库不存在,MongoDB 会为我创建它?
如果问题 #1 的假设是正确的,那么如果我尝试请求同一个数据库两次,会发生什么情况?它会只返回已经存在的实例还是会删除现有实例并创建一个新实例?
附言你能不能给我一个好的和更新 MongoDB for Java 手册/教程,我用谷歌搜索了其中的几个,但它们不是那么更新。
最佳答案
在 3.1.1
驱动程序中:
调用 getDatabase
实际上并没有创建新的数据库,因为操作是惰性的——它返回数据库表示。调用任何可修改的操作(例如 createCollection
):
- 如果数据库不存在,将为您创建新的数据库
- 如果存在,它将为您获取数据库
但请记住,您必须调用任何实际执行某些操作的操作 - 例如创建。如果您只是调用 getDatabase
,它不会创建它。
关于java - MongoClient.getDatabase() 是只返回一个数据库实例还是实际创建它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33902181/