Я новичок в Mongo, и мне было интересно, какие лучшие практики будут в плане доступа к коллекциям. Лучший способ объяснить это через sudo-код:
public class DBManager {
private MongoClient mongoClient;
private DBCollection collection;
public DBManager() {
mongoClient = new MongoClient( "127.0.0.1", 27017);
collection = mongoClient.getDB( "DB" ).getCollection("collection");
}
public String add(String item) {
if(collection!= null) {
ObjectId id = new ObjectId();
BasicDBObject insert= new BasicDBObject("_id", id)
.append("item", item)
collection.insert(insertRepo);
return id.toHexString();
}
return null;
}
public boolean remove(String id) {
if(collection!= null) {
ObjectId id = new ObjectId(id);
DBObject dbObject = collection.findOne(objectId);
collection.remove(dbObject);
}
return false;
}
}
Я не совсем понимаю, что происходит за кулисами, когда вы делаете "getCollection". Является ли хорошей практикой просто делать это один раз при инициализации или просто настраивать MongoClient в конструкторе, а затем получать коллекцию для каждого запроса?
это прекрасно, чтобы сделать это в конструкторе. Еще лучше определить DBManager
как singleton
, так что коллекция будет инициализирована во время загрузки