When should you be using MongoCollection and when DBCollection? The same questions apply to DBObject, BasicDBObject, Document. There seem to be different things are similar. At least to me they are. I find this very confusing. Any advice would be very welcome.
Asked
Active
Viewed 1.1k times
1 Answers
34
This seems to be a question about the 3.0.0 MongoDB Java driver.
The general advice is to use Document/MongoCollection/MongoDatabase for new application development.
The DBObject/DBCollection/DB classes, however, remain in the 3.0.0 driver so that many existing applications that currently use the 2.x driver series have an upgrade path to the 3.0 driver. The driver authors (I'm one of them) tried to make this clear by deprecating the MongoClient.getDB method, which returns an instance of the DB class, in order to encourage use of the new MongoClient.getDatabase method, which returns an instance of MongoDatabase.

jyemin
- 3,743
- 23
- 16
-
thank you! this is the answer i was looking for. so that also means that methods such as update(...) are no longer available? i am asking this because of one of my other questions is about the appearent unavailability of the "$upsert" option. i still think i MUST be wrong; there still must be a way to do an upsert using 3.0. – dexter Mar 31 '15 at 15:22
-
2should have deprecate DBObject/DBCollection/DB classes too – Manish Oct 07 '16 at 10:13
-
@dexter Upsert can now be done by passing an `UpdateOptions` instance to `MongoCollection.update()`. `UpdateOptions` has an `upsert(boolean)` method. – Aquarelle Jun 07 '17 at 06:58
-
1Even in the latest mongo drivers, classes such as MongoOperations still use DBCollection instead of MongoCollection and there is no documentation stating which other clases to use instead if you want to migrate the application to MongoCollection. – will824 May 07 '19 at 21:50
-
super confusing. – barrypicker Dec 06 '19 at 00:15