【问题标题】:Can Javascript natively connect to MongoDB?Javascript 可以原生连接到 MongoDB 吗?
【发布时间】:2014-06-20 15:35:25
【问题描述】:

我正在尝试查找在访问网页(通过<script src=""> </script>)时加载的 Javascript 脚本/文件(filename.js)是否可以本地连接到 MongoDB 实例(在同一台服务器上运行)并查询一些汇总数据。

然后我尝试将聚合查询数据(在 Mongo 中作为文档列表返回)传递给 Morris Charts,因此它将显示在网页上的条形图中。

我能找到的唯一内容是关于使用 Node.js(我不想这样做)或在 Mongo shell 中加载 .js 文件。

谁能告诉我一个 Javascript 文件是否可以连接到 Mongo?如果没有,有没有办法在 Python 中进行查询(运行 Flask 框架)并将该数据传递给 Javascript 文件?

我已经测试了以下代码,但不成功(根本没有图表显示):

var con = new Mongo();
var db = conn.getDB("DBName");
var query = db.Collection.aggregate(<aggregate query here>);

Morris.Bar({
element: 'bar-chart',
data: query,
xkey: 'x',
ykeys: ['y'],
labels: ['label'],
hideHover: 'auto',
resize: true
});

我还测试了以下代码,它确实有效:

var dataset = [
{x: '1', y: 10},
{x: '2', y: 20},
{x: '3', y: 40}
];

Morris.Bar({
element: 'bar-chart',
data: dataset,
xkey: 'x',
ykeys: ['y'],
labels: ['label'],
hideHover: 'auto',
resize: true
});

【问题讨论】:

  • 使用Python访问MongoDB:api.mongodb.org/python/current
  • 你真的有“”吗?你能从提示中获取数据吗?
  • @doctorlove 我有我的实际查询,它从那里的 Mongo 提取信息。我不能在那里发布实际的查询,但是当我在 Mongo shell 中执行查询时,我得到了我想要在 Morris 图表中显示的数据。
  • RESTful Mongo怎么样
  • 通常,出于安全原因,您不希望在浏览器中直接打开 Mongo(或数据库)到您的 javascript。通常,只有 Web 服务器或应用程序服务器才能访问网络级别的数据库。这不适用于您的情况吗?

标签: javascript mongodb webpage


【解决方案1】:

您无法从客户端浏览器中的 javascript 文件直接连接到 Mongo 如果是这样的话,想想安全漏洞。 我认为您的问题的最佳解决方案是向服务器发送 Ajax 请求并将聚合数据作为 Json 获取并解析它并将输入提供给图表 api。

【讨论】:

  • 你知道任何关于 Ajax 的不错的教程/介绍来执行这种类型的操作吗?我不熟悉 Ajax。
  • @SirCobalt 从字面上看就是谷歌“如何 AJAX”。很多很好的教程。请记住,AJAX 不是连接到数据库的东西。 AJAX 用于在已加载网页的背景中加载另一个网页。因此,您的 AJAX 调用页面将指向为您处理连接的网页(例如 PHP、ASP.NET)
  • @Koodlee 我正在研究 AJAX,这似乎是正确的方法。作为一名试图填补程序空白的网络工程师,很多这些语言对我来说都是新的。感谢您的反馈。
猜你喜欢
  • 2012-10-09
  • 2011-03-02
  • 2011-02-13
  • 1970-01-01
  • 2021-01-10
  • 1970-01-01
  • 2016-07-17
  • 1970-01-01
相关资源
最近更新 更多