C
C#2w ago
Obsdark

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
Jimmacle
Jimmacle2w ago
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?
Obsdark
ObsdarkOP2w ago
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.
Jimmacle
Jimmacle2w ago
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
Obsdark
ObsdarkOP2w ago
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.
Jimmacle
Jimmacle2w ago
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
Obsdark
ObsdarkOP7d ago
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.
Jimmacle
Jimmacle7d ago
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
Obsdark
ObsdarkOP7d ago
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
Jimmacle
Jimmacle7d ago
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
Obsdark
ObsdarkOP7d ago
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
Jimmacle
Jimmacle7d ago
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
Obsdark
ObsdarkOP7d ago
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
Henkypenky
Henkypenky7d ago
mongodb has a data api, no idea if it's paid but it's bare bones
PixxelKick
PixxelKick7d ago
I mean, if this is the exact use case, you should be able to yes
Obsdark
ObsdarkOP4d ago
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.

Did you find this page helpful?