使用Javascript扫描Mongo数据库,并在字符串不相同时触发事件
Scanning Mongo databases with Javascript and setting off events when strings are not identical
我正试图在一个Javascript算法上工作,通过我的MongoDB循环,搜索两个相同的url,并做头部对象的分析。
下面是该对象的示例代码片段:
{
"url": "www.professionalsupplementcenter.com",
"date": "Tue Mar 26 2013 15:08:31 GMT-0400 (EDT)",
"headers": {
"server": "Microsoft-IIS/7.5",
"x-aspnet-version": "4.0.30319",
"x-powered-by": "ASP.NET"
}
}
具体来说,我将有两个集合。这两个集合是MongoDB中间隔两个月的HTTP头刮擦的两个数据库。我们称它们为todayScrape
和twoMonthFromNowScrape
。通过这两个集合,我想比较它们的头对象,所以,server
, x-aspnet-version
, x-powered-by
,看看这些数字中是否有任何升级,例如IIS/7.5
升级到IIS/8.0
(将来)。
我没有任何代码要显示,因为我根本不知道如何实现这个系统。我不知道该从何说起。我想首先比较这两个url,然后当程序确定这两个url都存在时,它将对三个头对象进行特定的比较。然后,当这些属性被改变时,它可以按顺序扫描它们,并在字符串不相同时触发一些事件,如console.log("There has been a change")
。
您需要的第一件事是npm install mongodb
(如果您还没有)。然后在app.js文件中:
var mongodb = require('mongodb');
var Server = mongodb.Server('127.0.0.1', 27017, {});
new mongodb.Db('scraperapp', Server, {w: 1}).open(function(err, db){
var scrape = new mongodb.Collection(db, 'scrape');
var scrapeFuture = new mongodb.Collection(db, 'scrapeFuture');
scrape.find({url: {$exists: true}}).toArray(function(err, today_docs){
if(!today_docs) return;
var scrapeFn = function(i){
var today_doc = today_docs[i];
scrapeFuture.findOne({url: today_doc.url}, function(err, future_doc){
if(!future_doc) return;
if(today_doc.headers.server != future_doc.headers.server)
console.log(today_doc.url + ':servers different');
if(today_doc.headers['x-aspnet-version'] != future_doc.headers['x-aspnet-version'])
console.log(today_doc.url + ':x-aspnet-versions different');
if(today_doc.headers['x-powered-by'] != future_doc.headers['x-powered-by'])
console.log(today_doc.url + ':x-powered-by different');
if(today_docs[i+1]) scrapeFn(i+1);
});
}
scrapeFn(0);
});
});
相关文章:
- 在按钮的onclick事件上将字符串传递给JavaScriptFuntion
- 日期选择器更改事件抛出”;TypeError:字符串不是函数;
- 如何在 keyup 事件上匹配数组中的字符串
- Javascript:附加字符串中的事件,闭包中的变量求值
- 如何从视频标记错误事件中获取字符串/消息或代码
- 将字符串传递给给出NULL的事件侦听器
- 如何将事件对象字符串化
- TextInput onChange事件接收的是文本对象而不是字符串
- 当页面上存在特定文本字符串时发送 Google Analytics(分析)事件
- 将字符串变量作为事件源 url 传递给 Fullcalendar 不起作用
- 任何输入或文本区域中数字字符串的事件侦听器
- NodeJS如何将onchange事件添加到字符串中
- Javascript:替换 html 中的字符串,而不破坏未来事件处理程序的元素
- 使用 javascript 从 URL 字符串中删除特定事件
- 更正 JavaScript 语法以将字符串变量附加到 Google Analytics 自定义事件
- 通过动态超链接单击事件的调用方法传递对象或字符串
- HTML/javascript- 字符串附加变量以绑定点击按钮事件
- 按钮单击事件未将输入字符串传递给 MVC 控制器方法
- 是否可以获取已触发的事件名称,以便我可以将其用作方法中的字符串
- 需要发送onclick事件字符串var从超链接到javascript事件函数(e)