yesodweb / persistent

Persistence interface for Haskell allowing multiple storage methods.
MIT License
466 stars 295 forks source link

MongoDB's `nestIn` and `nestNotIn` are impossible to use and should be removed #1083

Open TomMD opened 4 years ago

TomMD commented 4 years ago

nestNotIn ($nin) takes an array of values and filters out any record where the field is an element of this array.

In the persistent library though, nestNotIn does not take a collection such as a list or set and instead takes a single element - this is just nonsense.

parsonsmatt commented 4 years ago

@TomMD You're the only person I know of that actually uses persistent-mongoDB. Would you like to be a maintainer for it?

TomMD commented 4 years ago

@parsonsmatt No, I'm trying to shed maintainer-ships not gain them. Thank you, though, both for this and general Haskell community efforts.

I realize we need some significant effort in both the mongodb driver and persistent integration (not to dismiss all the work - it's a lot to build and then a lot more could be built). It isn't yet clear how to proceed with Haskell + NoSQL. The resources available are quite limited but a rich MongoDB library is both a significant cost and a significant benefit so I'll keep mulling things. The first thing is probably to shore up the underlying driver to allow TLS, support rich and easy group operations, and support the new wire format. Only then can we as a community address the persistent overlay and receive significant real-world benefit.

parsonsmatt commented 4 years ago

Totally fair :) Best of luck!