MongoDB support for Slick(GSOC project)

114 views
Skip to first unread message

adam kozuch

unread,
May 25, 2015, 7:10:40 AM5/25/15
to scala...@googlegroups.com

Hello,

My name is Adam Kożuch and I will work on support MongoDB for Slick as a participant of Google Summer of Code. Main task in this project is to provide more flexible data types in slick in order to use more advanced mongo features. Project will be continuation of last year GSOC project. I will write informations about my progress on this mailing list. If you are interested in this project have some thoughts, ideas or wishes feel free to contact me. You can find this project on my Github. In attachment  you can find my proposition. 


Cheers,

Adam

GSOC 2015 - proposition.pdf

adam kozuch

unread,
Jul 8, 2015, 6:22:35 PM7/8/15
to scala...@googlegroups.com
Late update about progress in a project.

We decided to separate project from slick codebase. Now you can find it here .
1. Driver is updated to 3.0
2. For now we have data structures for working with arrays and nested documents  example tests can be find here and here.
3.Instead of Table in mongo we will use Document from which we can call method field[T] for primitive, doc[T] for nested documents. 
4.We can create array by invoking field or doc inside array method. For providing arrays I used functionality of Query.

Current plans: Now I will work on QueryCompiler for mongo
Future plans:  in the future it would be good to provide data structures like HMap for nested documents and maybe unify documents and arrays 
into field. 

If you have any question or some ideas for mongo driver just write to me.

Cheers,
Adam

adam kozuch

unread,
Aug 28, 2015, 7:16:26 AM8/28/15
to Slick / ScalaQuery
 Update
I changed tests and now here you can find how mapping looks like.
After some time I'm finally able to compile query(code of compiler you can find here). Basically for now my focus is on map and filter operations. After query compilation arguments of query and projection are extracted in here and here.
With that I'm able to get result from a driver (MongoDBObjetct). Next step is a conversion MongoDBObject to correct result type.  In order to to that I need implement Converter class.
On the roadmap there is also:
- make insert
- implementation of CollectionNode which will be used for representation collections in AST
- implementation of HMap (which simplify mapping)
- extension methods for mongo specific operations (for instance operations on arrays)

I encourage everyone to testing current prototype. Check if returned is correct, review my code or make PR  . If you don't understand something just write to me.  Any kind of help would be appreciated. There is plenty of work to do.

Cheers,
Adam


W dniu poniedziałek, 25 maja 2015 13:10:40 UTC+2 użytkownik adam kozuch napisał:
Reply all
Reply to author
Forward
0 new messages