class AbstractMongoDao extends AbstractDao<M,P,K,I> {

    public Update<P> updateOf(P object) {
        ImmutableSet.Builder<String> attribs = ImmutableSet.builder();
        if (object != null) {
            Document doc = partialMapper.toDocument(object);
            for (String key : doc.keySet()) {
                attribs.add(key);
            }
        }
        return Update.of(object, attribs.build());
    }

    public  AbstractMongoDao(Class<M> modelClass, Class<P> partialClass, MongoCollection<Document> collection);
    public  AbstractMongoDao(Class<M> modelClass, Class<P> partialClass, MongoCollection<Document> collection, ObjectMapper objectMapper, ObjectMapper extendedJsonMapper);
    public  AbstractMongoDao(Class<M> modelClass, Class<P> partialClass, MongoCollection<Document> collection,
                            DocumentMapper<M> modelMapper, DocumentMapper<P> partialMapper);

}