如何创建一个带有搜索栏的网站来查询 mongo 数据库?
How to create a website with a searchbar to query a mongo database?
我设置了一个大型 mongoDB 数据库,我正在尝试创建一个网站,用户可以在该网站上使用搜索栏远程查询数据库并将结果发布在网站上(严格只读) .
我有使用数据库进行数据分析的经验,但从未创建过用于查询结果的网站。
我没有任何 Web 开发经验,也不知道使用什么平台(PHP?node.js?)。
提前致谢。
我在nodejs中这样做。
在我的服务器端应用程序中,我通过 mognoose 建立了连接,例如:
var mongoose = require('mongoose');
mongoose.connect('mongodb://yourhost/database');
接下来您需要将您的模型导入数据库
var YourDBVarName = mongoose.model('collectionName', {
yourfields1 : type,
yourfields2 : type,
yourfields3 : type
...
});
然后我为它做 GET
var express = require('express');
var app = express();
app.get('/dblisting', function(req,res){
YourDBVarName.find({ yourfieldsX: 'value'}, function(err, data) {
if(err) {
res.send(err.message);
}
else{
res.send(data);
});
});
然后只需使用 $.ajax 向您的节点服务器发送一些 GET。com/dblisting 作为响应,您会收到按
过滤的集合
{ yourfieldsX: 'value'}
当然,您可以只执行 {},这样您就可以获得所有存储的数据。
斯利
如果您想了解如何从 mongoDB 检索数据,您可以使用我的 github https://github.com/parthaindia/CustomMongo 。使用需要集合名称和 Map 的 getByCondition() 方法。 Map 可以是键值对形式的查询,Key 是列名。我在写web开发的search Query的时候就用到了这个方法。 java 代码给你一个 Json。写一个 Servlet 到 post 你的 Json 到 WEB UI.
这是一个示例,展示如何使用 Js post 检索到的数据,"server_base_url + /server/FetchData" 将是您的服务 URL.The 数据,您必须将其附加到 table 。或者一个跨度,取决于你实际 want.The 下面的代码附加数据
函数 getdata() {
$.get(server_base_url + "/server/FetchData", {
}).done(function (data) {
$.each(data, function (index, value) {
alert("The Index" + index + "The Value" + value);
$("#11table1").append("<tr><td id='dynamicid1" + index + "'>" + value + "</td></tr>");
});
});
}
这个函数可以用来定义table
函数 defineTable() {
$("#mainDivID").text("").append("<div id='contpanel' class='contentpanel'>");
$("#contpanel").append("<div id='rowid11' class='row'>");
$("#rowid11").text("").append("<div id='row11table1' class='col-md-12'>");
$("#row11table1").text("").append('<br /><br /><center><h5 class="lg-title mb5" style="background-color:#428BCA;height:20px;color:#fff;padding-top:4px;"><b>Heading</b></h5></center>');
$("#row11table1").append("<div id='table11id1' class='table-responsive'>");
$("#table11id1").append("<table id='11table1' class='table table table-bordered mb30' >");
$("#11table1").append("<thead><tr><th>Index</th><th>Value</th></tr></thead>");
}
问题有以下步骤:
- 创建前端,它将由 HTML、CSS 和 Javascript 组成。初学者通常会发现使用 jQuery 和 jQuery UI 是最容易的,因为它们有详细的文档并且包含适用于几乎所有可能场景的插件(但是,它们不应该用于创建大型复杂的应用程序!)。 Bootstrap 或 Foundation 可以帮助您 HTML / CSS.
- 创建一个(可能)JSON API,前端可以与之通信以提交搜索和检索结果。您可以使用 PHP、Python、Ruby 或许多其他语言来执行此操作。对于像您所描述的那样的简单网站,它更像是一个偏好问题。
- 将来自前端的搜索请求翻译成 MongoDB 查询 API,然后 return 结果通过 API。您将使用与您选择的任何语言兼容的 MongoDB 客户端库。
根据您的需要,您可以使用现有的 REST API for MongoDB.
来消除 (2)
请注意,如果您只想通过搜索/图表访问 MongoDB 数据,那么您可以利用我参与的开源项目 SlamData 来完全避免编码。 SlamData 允许您使用 Google 式搜索(或更高级的 SQL)来查询 MongoDB 并以表格或图表形式返回结果。
我设置了一个大型 mongoDB 数据库,我正在尝试创建一个网站,用户可以在该网站上使用搜索栏远程查询数据库并将结果发布在网站上(严格只读) .
我有使用数据库进行数据分析的经验,但从未创建过用于查询结果的网站。
我没有任何 Web 开发经验,也不知道使用什么平台(PHP?node.js?)。
提前致谢。
我在nodejs中这样做。
在我的服务器端应用程序中,我通过 mognoose 建立了连接,例如:
var mongoose = require('mongoose');
mongoose.connect('mongodb://yourhost/database');
接下来您需要将您的模型导入数据库
var YourDBVarName = mongoose.model('collectionName', {
yourfields1 : type,
yourfields2 : type,
yourfields3 : type
...
});
然后我为它做 GET
var express = require('express');
var app = express();
app.get('/dblisting', function(req,res){
YourDBVarName.find({ yourfieldsX: 'value'}, function(err, data) {
if(err) {
res.send(err.message);
}
else{
res.send(data);
});
});
然后只需使用 $.ajax 向您的节点服务器发送一些 GET。com/dblisting 作为响应,您会收到按
过滤的集合{ yourfieldsX: 'value'}
当然,您可以只执行 {},这样您就可以获得所有存储的数据。
斯利 如果您想了解如何从 mongoDB 检索数据,您可以使用我的 github https://github.com/parthaindia/CustomMongo 。使用需要集合名称和 Map 的 getByCondition() 方法。 Map 可以是键值对形式的查询,Key 是列名。我在写web开发的search Query的时候就用到了这个方法。 java 代码给你一个 Json。写一个 Servlet 到 post 你的 Json 到 WEB UI.
这是一个示例,展示如何使用 Js post 检索到的数据,"server_base_url + /server/FetchData" 将是您的服务 URL.The 数据,您必须将其附加到 table 。或者一个跨度,取决于你实际 want.The 下面的代码附加数据
函数 getdata() {
$.get(server_base_url + "/server/FetchData", {
}).done(function (data) {
$.each(data, function (index, value) {
alert("The Index" + index + "The Value" + value);
$("#11table1").append("<tr><td id='dynamicid1" + index + "'>" + value + "</td></tr>");
});
});
}
这个函数可以用来定义table
函数 defineTable() {
$("#mainDivID").text("").append("<div id='contpanel' class='contentpanel'>");
$("#contpanel").append("<div id='rowid11' class='row'>");
$("#rowid11").text("").append("<div id='row11table1' class='col-md-12'>");
$("#row11table1").text("").append('<br /><br /><center><h5 class="lg-title mb5" style="background-color:#428BCA;height:20px;color:#fff;padding-top:4px;"><b>Heading</b></h5></center>');
$("#row11table1").append("<div id='table11id1' class='table-responsive'>");
$("#table11id1").append("<table id='11table1' class='table table table-bordered mb30' >");
$("#11table1").append("<thead><tr><th>Index</th><th>Value</th></tr></thead>");
}
问题有以下步骤:
- 创建前端,它将由 HTML、CSS 和 Javascript 组成。初学者通常会发现使用 jQuery 和 jQuery UI 是最容易的,因为它们有详细的文档并且包含适用于几乎所有可能场景的插件(但是,它们不应该用于创建大型复杂的应用程序!)。 Bootstrap 或 Foundation 可以帮助您 HTML / CSS.
- 创建一个(可能)JSON API,前端可以与之通信以提交搜索和检索结果。您可以使用 PHP、Python、Ruby 或许多其他语言来执行此操作。对于像您所描述的那样的简单网站,它更像是一个偏好问题。
- 将来自前端的搜索请求翻译成 MongoDB 查询 API,然后 return 结果通过 API。您将使用与您选择的任何语言兼容的 MongoDB 客户端库。
根据您的需要,您可以使用现有的 REST API for MongoDB.
来消除 (2)请注意,如果您只想通过搜索/图表访问 MongoDB 数据,那么您可以利用我参与的开源项目 SlamData 来完全避免编码。 SlamData 允许您使用 Google 式搜索(或更高级的 SQL)来查询 MongoDB 并以表格或图表形式返回结果。