Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mongodb client side javascript api

I would like to use mongodb directly from the client-side, using javascript inside my models. I suppose this is possible since on the mongo website there is a javascript realtime console for demo.

Does exist a way to use the same api in a normal javascript application without having to write client-server glue code?

Thanks

like image 977
Bakaburg Avatar asked Sep 03 '11 10:09

Bakaburg


People also ask

Can we connect JavaScript to MongoDB?

To connect a Node. js application to MongoDB, we have to use a library called Mongoose. mongoose. connect("mongodb://localhost:27017/collectionName", { useNewUrlParser: true, useUnifiedTopology: true });

Is MongoDB good for API?

MongoDB REST API is simple to set up and allows you to store and retrieve documents, making it great for Unstructured Data.


2 Answers

Looks like the site uses REST-like AJAX interface, but I am certain that it does not access any MongoDB instance directly or even indirectly via some bridge.

Thinks twice before applying this pattern: how will you enforce security? Are you aware of AJAX limitations? If you really know what you are doing, the official documentation points to few useful resources:

  • Sleepy Mongoose (Python) is a full featured REST interface for MongoDB which is available as a separate project.

  • MongoDB Rest (Node.js) is an alpha REST interface to MongoDB, which uses the MongoDB Node Native driver.

  • Simple REST Interface The mongod process includes a simple read-only REST interface for convenience. For full REST capabilities we recommend using an external tool such as Sleepy.Mongoose.

Having a REST bridge and managing the same origin policy you can easily access MongoDB directly using AJAX calls and JavaScript.

like image 71
Tomasz Nurkiewicz Avatar answered Oct 13 '22 01:10

Tomasz Nurkiewicz


I needed to do something similar to this myself, a console inside an admin interface, and since I use PHP in the back end I just made script to receive the js commands and use MongoDB::execute method, the connection in php is already open so I didn't have to pass any authentication data, just the commands.
You have to be extremely careful with something like this, though, and make sure only trusted users can access the page (and script), don't make it publicly available since anyone can execute js on the client to gain access to your db.

Edit: Here's the link to the docs http://ar2.php.net/manual/en/mongodb.execute.php

like image 34
Flatline Avatar answered Oct 13 '22 00:10

Flatline