Looking for some NoSQL database with this characteristics
Good people, did any of you know some NOSQL database with this characteristics:
- (Hopefully) an API or some other code neutral way to interact with it directly.
- Reliability > Speed (Or anything else really, i need it than the data is reliable).
- Have scripting capabilities, something similar or on point with SPs right out of the box would be good.
- Can be installed locally, preferably using Docker but that is not a requirement.
Have found already:
- CouchDB: But its dependant of certain ubuntu versions, deprecate lists (which is his equivalent to something resorting SP) and for the other thing similar to SPs, this is Search, is an unnoficial plugin.
- RavenDB: You need a specific driver to it and there is some weird shenanigans when trying to run it on docker.
15 Replies
kinda sounds like you want an application with a database backend and not just a database
do you have higher level project requirements that led to these requirements?
I mean, CouchDB have the API thing, thats why im asking about it but yeah, i need it to be Key-value store or able to work like that
I can bypass the thing of API or so tho, i would preffer not to, but if i need to make an application for intermediate i can do it, as long as i can do something similar to SPs
So, about your question, yes, all the points there are required by the proyect however the one marked as optional is, well, optional.
i guess my question is why do you need nosql with built in programmability/API specifically?
typically the database is just for storing data and putting behavior in it gets messy
For custom querys, nothing more really, you see taking the example of CouchDB, if i want to send the minimal ammount of parameters and receive just the precise ammount of data, CouchDB doesnt have any way to, for instance, convert coords to distance in order to being able to search by distance.
So, if i send a Long and Lat of X for instance, i cannot make a search by distance of all the objects which just so happend are at Y distance processing the coordinates of such objects, at least i cannot do it without calling all the documents from that DB and check them one by one, which is, as you may expect, very very unefficient
And about why NoSQL specifically, its because i dont know the exact propertys of all the documents im gonna be saving there, i do know, however, some of the propertys of some of the object types, and i need the propertys for being able to, with just one document, being able to save several objects of different but related types than sometimes overlap in his propertys and sometimes dont
So, in short, im using NoSQL because it makes it to save data who can easily be used for different types of objects in different contexts without the hussle of keep A LOT of redundant data and A LOT of unnecessary diagramming and redundant tables.
The API part would be nice, but i can brush it off, as long as the library is official. im using C# too but that stop being relevant if it has any way to make neutral communication with the database, as it happend to have it CouchDB with his API way to work for instance.
have you considered using a relational database with a JSON column for dynamic properties?
as far as "neutral communication" goes, it is neutral for many databases in that you're very likely to find a library to communicate with your chosen database using your chosen language
In the SQL world maybie, not so much in the NoSQL one. At least so far i have seen.
Still, as already stated, the API thing is optional, if its not possible i can write an intermediary app, of course i would preffer to avoid that if possible, but if it is necessary, well, then it is.
I mean, there are a lot of blasphemys you can do with a lot of technologys, CouchDB saves his documents as json and a lot of NoSQL databases do that too. However i would preffer something dedicated to do that before needing to basically bullshit my way to a sub-optimal solution, the requirements of the proyect would be better solved with that, im fairly certain about it.
I have consider that path tho, but for efficiency and for search purposes i think it would be far far easier find a NoSQL database than can do with this characteristics, at least in the long run.
afaik there is nothing efficient about nosql
it has really fallen out of favor now that relational databases have pretty widespread json support
if your data is even partially relational i would pick a relational db
I mean, in other part of the application i have connected a relational database
i had used it for other purposes, but for some structural goop like this
Some other people suggested using excel to save that data too
I mean, i think i can check that out, i notice people use Mongo in a relational way some years ago, and notice NoSQL databases going out of grace too, never knew why that happend
Not that im thinking on using mongo, it needs at least two plugins to work as i needed to, so far i have saw at least
i mean, in a relational db you can dump json in a row just like you can in nosql except you also have all the relational features available
and you can typically add indexes on json data one way or another too
I mean, yeah, but that will kinda force me to use functions and sps for the addapting of that, that is a lot of extra work but
I think once you do it, its done
personal opinion, never use SPs
if you have something so complex it needs to be an SP, it should be in your application's business logic
if this means having an API in front of your database to abstract that, that's a pretty common application design
I mean, i would agree to that except when the problem is a format problem and not a processing one, because if such is the case, then, its a data layer problem, i.e. you have the data but you want to show it somewhere different.
If you notice, a lot of SPs do just that, they manage just the information presentation, insertion or updating of data in a custom way.
You can, as your opinion is inspired i think, doing it wrong and do complex bussiness operation on it but, its not the point of the SPs, in that much ill agree with you.
Ill consider your words regarding using SQL for this cases tho, thanks @Jimmacle
mongodb has a data api, no idea if it's paid
but it's bare bones
I mean, if this is the exact use case, you should be able to yes
Thanks both of you, lately i have been seeing KeyDB and Valkey, not certain if they work for my use case, Mongo havent check it throughly yet but i have saw than for my use case i may need a plugin, still i have some hope to find something with the things i request tho, i havent discarted nor Mongo nor using SQL yet either. Thanks in any case for your suggestions.