Does Laravel support MongoB by default or any NoSQL database? - mongodb

My company runs a huge Lumen 5.1 project on MySQL. They want to add to it analytics, and they that part to use MongoDB
Is it possible to use MongoDB without any third party libraries? I one going to use
https://github.com/jenssegers/laravel-mongodb
But the tech lead thinks Laravel support MongoDB by default, I'm just asking this question to check whether that's true or not.
Edit:
If MongoDB isn't an option, does Laravel support any other NoSQL by default?

Laravel does not support MongoDB by default.
You would need to use one of several available third-party packages. I like moloquent because it maps mongo db collections to laravel models just like eloquent.
You can use Redis if you need a natively supported NoSQL db or could consider ElasticSearch (not supported natively) if you are going to store a lot of meta data and then analyse it. Tools like kibana and logstash might get very helpful.

Related

Formio connecting to other databases other than mongodb

Anyone know if we can configure a different database than the default
mongodb database that shipped with formio? I found "formio-sql" and it seems to act as a connector to our own database where we have to create and maintain own database tables and configure them with actions. What I am actually looking for is whether formio can use different databases like Mysql to store the submitted data natively.
As of today, it is not possible to use databases other than MongoDB to store submitted data natively.
The only option is by using 'Sql Connector' action via 'formio-sql' which you have seem to have found yourself.

MongoDB Atlas with GraphQL

Looking to build a react-native app and was going to use MongoDB Atlas for the database, express/apollo/graphql mixed in there for better querying. Has anyone had any experience with these techs together? especialy MongoDB Atlas and express?
I'm not sure how all these techs link together. Any tutorials will be handy as well. Thanks.
MongoDB Atlas provides you the endpoint where you can connect to the replica set and use mongodb.
This takes over many other factors such as installing mongodb, backups and restore. Also, the endpoint(connection string) provided by MongoDB Atlas comes with built-in:
Authentication enabled
Authorized users
Replica set to maintain HA
All of these factors give you advantages of using MongoDB Altas so that you can focus on developing your apps
Using mongodb atlas is likely to give you same things you would expect from your local mongodb and express with additional advantages listed above
If you're planning on using MongoDB and GraphQL in a NodeJs service in the interest of getting better querying capabilities, I'd suggest looking at GraphQL-to-MongoDB, or how I learned to stop worrying and love generated query APIs.
Disclaimer: I wrote that blog post.
MongoDB Atlas just announced GraphQL support for Atlas and Stitch. In a nutshell , you can easily generate/ create Schema for a collection in Atlas, Define access rules, relations and generate queries and mutations. GraphiQL is also integrated to run and test your queries. Check this blog post for more details - https://www.mongodb.com/blog/post/introducing-graphql-support-in-mongodb-atlas-with-stitch

Is it possible to pair EZ Publish 5 to MongoDB?

We have an EZ Publish 5 already operational with an Oracle 11g database as a persistence backend.
We planned to get rid of Oracle and we know that we could use Postgresql for sure as a new RDBMS, but we also planned to use MongoDB whenever it's possible.
So the question is: Can we pair EZ Publish 5 to a MongoDB NoSQL database ?
Quick answer: You cannot now as there is no MongoDB driver implemented.
There was a NoSQL Driver planned in the 5.x series, but it is not yet implemented in the latest eZ Publish 2013.06.
With the official roadmap not being updated since the 4.6 release, it hard to guess when the NoSQL driver will be implemented, and if MongoDB will be supported.
Theorically, as the new persistence API make it "easier" to add new storage drivers, you could write a custom MongoDB storage driver.
But in practice implementing a storage driver is quite complex and resource consuming.
Contacting the eZ Systems office in your region and directly ask them when a MongoDB driver will be available might be fastest way to get a clear answer.
I hope it helps.
It is not currently possible as there is no storage engine implemented for MongoDB.
It is indeed planned to implement a NoSQL engine, but there is no version tag on this for now.
However, the new persistence API makes it possible to "easily" implement such a storage engine, but you will be limited by the fact that eZ Publish 5 still uses the legacy back office which runs in the legacy stack (so with 4.x infrastructure which is not compatible with NoSQL).
In short: Implementing a new storage engine will make it only accessible from Public API and REST API.
Since ez5 is a symfony application you can achieve this the symfony way
http://symfony.com/doc/current/bundles/DoctrineMongoDBBundle/index.html
just remember they have renamed the app folder and the appkernel.php.
Haven't tried it yet though

Server-side Framework/Language for MongoDB

If MySQL walks hand-in-hand with PHP, what is the equivalent of the MongoDB? Is there any framework that works efficiently and matured with MongoDB?
You can use any platform for which MongoDB driver is provided - and there are plenty. Here is the list of all mongo drivers for platforms:
http://docs.mongodb.org/ecosystem/drivers/
I would say, MongoDB is more frequently used with such platforms as node.js as mongo has JSON-ish query syntax, thus JS-devs like it more than SqlServer or Oracle. But it doesn't mean that it can't be used or has some limitations for other platforms. I use MongoDB on my .NET projects and it all works just fine for me.
"walks hand-in-hand"? If you mean MySQL drivers exist for PHP then yes, similar drivers exist for MongoDB: http://www.php.net/manual/en/book.mongo.php
On top of this most PHP frameworks have support for MongoDB, including:
Kohana
CakePHP
Yii
Symfony
Laravel
Doctrine ODM (not a framework but higher enough level to mention)
Zend
Lithium
The list is endless and all of these frameworks have mature plugins, I personally have actually developed a very mature plugin for Yii which works quite well.
did u look at this ?
php class for mongodb: visit the hyperlink
Most languages have mongodb support via drivers provided.
Here is the list of all drivers: http://docs.mongodb.org/ecosystem/drivers/
As of popular combo equivalent, MongoDB is pretty popular among node.js based back-ends, especially with the mongoose driver.

mongoDB as a file storage for Grails application

I've recently came across a need to store a higher amount of files in my application and because PaaS platform used to host the application provides mongo, I've would like to use it.
However because I'm quite inexperienced with mongo I have almost no idea what is the current state of mongo related plugins and tools for grails. What should I use? As I want to keep domain classes in SQL database and use mongo only to store related files (in this case it will be mostly a bunch of PDFs and text documents related to domain instance) the mongoDB ORM [1] plugin seems too "heavy". Unfortunately mongoDB ORM is probably the only mongo plugin for grails in active development at the moment.
In short, what would be the best plugin / library tool-set for this purpose? The closest thing that matches my need I've found is grails-mongo-files plugin [2], which is probably a little bit outdated with no further development.So far it seems that I will have to use mongo's java driver (or the gmongo wrapper) and write some storage service and taglib by myself (what is not necessary a bad thing).
[1] http://grails.org/plugin/mongodb
[2] https://github.com/quirklabs/grails-mongo-file
There is also the mongodb gridfs plugin. http://grails.org/plugin/mongodb-gridfs
One thing to consider is that gridfs effectively does two calls to mongo, one to retrieve file information and one to retrieve the file. So it might not be a good fit if your files are under 16 megabytes.
Here is a post on how to do this manually if you want to bypass plugins - http://jameswilliams.be/blog/entry/171