关于javascript:MongoDB是否具有本机REST接口?

Does MongoDB have a native REST interface?

我目前正在评估Mongo和CouchDB用于存储数据点(分析)。

在与CouchDB的早期交互中,我喜欢基于JSONP的界面。我可以从纯JavaScript执行所有CRUD操作。
只需运行CouchDB并编写一些JavaScript-无需服务器端组件。

与M??ongo进行比较时,是否有可用的REST接口?
完全可以从Mongo中的javascript进行CRUD吗?

谢谢!


MongoDB没有完善的REST接口,主要是因为服务器使用本机二进制协议来提高效率。您可以在官方文档中找到很少的RESTpackage器(编辑:MongoDB inc现在已删除此信息):

  • RESTHeart (Java 8) is a the data REST API server part of the MongoDB ecosystem. RESTHeart uses a standard representation format based on HAL with full native mongodb data support via the strict mode representation of BSON.
    It provides API for CRUD and data model operations, built-in authentication and authorization and it supports CORS.
    It is easy to setup and a docker container is available. RESTHeart is also fast and lightweight (~7 Mb footprint and ~200 Mb RAM peek usage).
  • Sleepy Mongoose (Python) is a full featured REST interface for MongoDB which is available as a separate project.
  • Rest on Mongo for node.js. The older MongoDB Rest is no longer maintained.
  • 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.


另一个选项(无耻的插件)是DrowsyDromedary。

我们出于对Mongo的其他REST选项的沮丧而开发了Drowsy。即,我们发现:

困猫鼬不是真正的RESTful。这是一个骇人听闻的HTTP接口,不遵循REST约定。它不使用标准的REST HTTP方法,也不使用URL来正确识别资源...我们还发现了限制最大结果数的选项(默认情况下是有限的),这很令人困惑。

mongodb-rest提供了适当的REST接口,但我们发现运行起来很麻烦。它会定期死掉,并导致我们的sysadmin疯狂(他的系统管理员几乎没有运行node.js服务的经验)。

内置的REST接口本来很好,但是它是只读的,因此对于我们的需求几乎没有用。

DrowsyDromedary,旨在解决上述许多问题:

  • 它提供了常规的REST接口,并支持标准的HTTP动词(GET,POST,PUT,DELETE和PATCH)。
  • 安装和部署非常容易(从github进行克隆,安装捆绑程序,运行bundle,然后运行rackup,然后您正在运行)。它也可以轻松地部署在Apache或nginx下。

  • 编辑

    Python Eve为此提供了一个绝佳的解决方案。我发现它非常易于使用和高度可配置。

    Eve is an open source Python REST API framework designed for human
    beings. It allows to effortlessly build and deploy highly
    customizable, fully featured RESTful Web Services.

    Eve is powered by Flask, Redis, Cerberus, Events and offers support
    for both MongoDB and SQL backends [*].

    The codebase is thoroughly tested under Python 2.6, 2.7, 3.3, 3.4 and
    PyPy.

    入门非常简单:

    1
    2
    3
    4
    from eve import Eve

    app = Eve()
    app.run()

    并用作

    1
    2
    $ curl -i http://example.com/people
      HTTP/1.1 200 OK

    REST端点模式很容易在设置文件中定义。

    原始

    我还没有使用过它,但是RESTHeart似乎可以解决这个问题。

    从文档中看起来很容易设置和使用。


    ActibeUnits(github repo)编写的mongodb-rest的fork是我所见过的mongodb最快,功能最丰富的rest接口之一。

    我强烈推荐。


    RESTHeart是MongoDB生态系统中新的数据REST API服务器部分。

    它提供用于CRUD和数据模型操作的API,内置的身份验证和授权,并支持CORS。

    它使用基于HAL json的标准表示格式,并通过BSON的严格模式表示形式完全支持本机mongodb数据格式。

    易于设置,并且提供了一个Docker容器。

    RESTHeart快速(请参阅性能测试结果)且重量轻(?7 Mb占用空间和?200 Mb RAM窥视使用)。


    不是。为了方便起见,mongod进程包括一个简单的只读REST接口。要获得完整的REST功能,您需要使用外部工具,例如Sleepy.Mongoose。


    不。但是mongodb-rest现在正在向前发展。

    https://github.com/codecapers/mongodb-rest