Server-side Framework/Language for MongoDB - 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.

Related

Does Laravel support MongoB by default or any NoSQL database?

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.

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

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

Faceted search. Are Solr with MongoDb good for it? Does someone know about modules, libraries for faceted search?

Good day, everyone.
I have an e-commerce website (Kohana php framework + Mysql + Sphinx search).
I want to integrate faceted search (also called faceted navigation, guided navigation, or parametric search) on my e-commerce shop.
1. I found several opinions that Solr was the best solution for faceted browsing? I want to be sure in my choice. Is Solr the best in doing that?
2. Also I want to migrate products (with attributes) from mysql to MongoDb. Is MongoDb good in cooperation with Solr?
3. Does someone know modules, ui, api for faceted search? Maybe there is some Zend library, Rest api...
Thanks for your help.
I found several opinions that Solr was the best solution for faceted browsing?
I am pretty sure that those who say that are most likely the same sales men who say that MongoDB pwns MySQL in every role.
Sphinx (the tech you are currently using) has been proven to support massive sets in a performant manner, for example: http://infegy.com/ uses it for a result set of 22 billion records ( http://sphinxsearch.com/info/powered/ )!
Solr is dead fast too but saying one is better than the other when both support facets and both support super fast speed on super big result sets is just utter nonsense.
Also I want to migrate products (with attributes) from mysql to MongoDb. Is MongoDb good in cooperation with Solr?
Solr uses a separate XML schema and files to represent its internal files (Lucence here) unlike Sphinx which can do this transparently without you knowing.
So to get MongoDB to work with Solr is no different than using MySQL with it. You build up the XML files and commit (or soft_commit) them to Solr.
As for faceting, here is a very simple page on it with links to the places you need to go: http://wiki.apache.org/solr/SolrFacetingOverview
Solr has a built in REST (JSON) API on top of Jety ( http://jetty.codehaus.org/jetty/ ) which you can use to fetch all the facets you need easily.